Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
| Author |
Topic |
|
sanjnep
Posting Yak Master
191 Posts |
Posted - 2005-10-03 : 18:41:54
|
| Here is the simple script, which generated the user and user permission and can be transferred to another database. I think it may useful for new DBA. I just wrote it 2 days ago. -----------------------------------------------------------------declare @login varchar(20), @db_user varchar(20), @role varchar(30), @role_mem varchar(30)print 'USE '+ db_name() print '-------------------------------------------------------------'print '--Granting current DB access'print '-------------------------------------------------------------'declare add_user cursor for select b.name as 'login', a.name as 'db_user' from sysusers as a inner join master..syslogins as bon a.sid = b.sid and b.name <> 'sa' order by a.name,b.nameopen add_userfetch next from add_user into @login, @db_userwhile @@fetch_status = 0beginprint 'exec sp_grantdbaccess '+''''+@login+''''+','+''''+@db_user+''''fetch next from add_user into @login, @db_userendclose add_userdeallocate add_userprint '-------------------------------------------------------------'print'--Adding role'print '-------------------------------------------------------------'---------add roledeclare add_role cursor forselect name from sysusers where issqlrole =1 and gid <> 0open add_rolefetch next from add_role into @role while @@fetch_status = 0beginprint 'exec sp_addrole '+''''+@role+''''fetch next from add_role into @roleendclose add_roledeallocate add_role----------add role membersprint '-------------------------------------------------------------'print '--Adding role members'print '-------------------------------------------------------------'declare add_role_member cursor forselect g.name as 'role',u.name as 'name'from sysusers u, sysusers g, sysmembers mwhere g.uid = m.groupuid and g.issqlrole = 1 and u.uid = m.memberuid and u.name <> 'dbo' order by g.name,u.nameopen add_role_member fetch next from add_role_member into @role_mem,@db_userwhile @@fetch_status = 0beginprint 'exec sp_addrolemember '+''''+@role_mem+''''+','+''''+@db_user+''''fetch next from add_role_member into @role_mem, @db_userendclose add_role_memberdeallocate add_role_memberSanjeev shrestha |
|
|
eyechart
Master Smack Fu Yak Hacker
3575 Posts |
Posted - 2005-10-03 : 22:16:55
|
| nice script. I use a modified version of the one microsoft has online called sp_help_revlogin.I think derrick modified it originally. His mod puts in the default database information. The only thing this script lacks is setting the fixed server roles. I might try to make a mod sometime later that adds this ability, right now it handles everything else pretty well.here is the link for derrick's modified version he posted here: http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=35143The original from microsoft is here: http://support.microsoft.com/default.aspx?scid=kb;en-us;246133btw, you still need the sp_hexadecimal procedure from the original microsoft KB article for the modified sp_help_revlogin to work.-ec |
 |
|
|
|
|
|
|
|