Here is some code that can be put in a stored procedure:if not exists (select * from master.dbo.syslogins where loginname = N'SomeUser')BEGIN declare @logindb nvarchar(132), @loginlang nvarchar(132) select @logindb = N'master', @loginlang = N'us_english' if @logindb is null or not exists (select * from master.dbo.sysdatabases where name = @logindb) select @logindb = N'master' if @loginlang is null or (not exists (select * from master.dbo.syslanguages where name = @loginlang) and @loginlang <> N'us_english') select @loginlang = @@language exec sp_addlogin N'SomeUser', 'somepassword', @logindb, @loginlangENDGOif not exists (select * from dbo.sysusers where name = N'SomeUser' and uid < 16382) EXEC sp_grantdbaccess N'SomeUser', N'SomeUser'GOif not exists (select * from dbo.sysusers where name = N'SomeRole' and uid > 16399) EXEC sp_addrole N'SomeRole'GOEXEC sp_addrolemember N'SomeRole', N'SomeUser'GOGRANT SELECT ON SomeTable TO SomeRoleGRANT EXECUTE ON SomeProcedure TO SomeRole
Tara