笔记39 SQL Server批处理设置帐号密码

笔记39 SQL Server批处理设置帐号密码

  1 --SQL Server批处理设置帐号密码
  2 -----------------------------------------------------------------
  3 -- Name: SQL Server 数据库帐号密码生成
  4 -- Author: 林勇桦
  5 -- DateTime: 2012-3-24
  6 -- Description:通过脚本生成数据库帐号密码并用户映射到服务器中的所有数据库,若果数据库服务器有多个,效率较高
  7 -- 如何使用:修改下面【通用SQL模板】的@user和@password的值,拷贝到下面的代码到SSMS中执行,这样就可以生成出适合本数据库实例的SQL脚本了,
  8 -- 我们再拷贝生成的SQL代码到SSMS中执行就可以了。
  9 
 10 -- 执行下面的两个脚本不过秒级,所以20台服务器对你来说,简单啦。
 11 -- 这里生成的SQL脚本中包含了系统数据库:master、model、msdb、tempdb,为了方便我就没对这些数据库进行限制的
 12 -----------------------------------------------------------------
 13 
 14 --通用SQL模板
 15 
 16 --创建数据库帐号
 17 
 18 DECLARE @dbname varchar(100)
 19 
 20 DECLARE @user varchar(100)
 21 
 22 DECLARE @password varchar(100)
 23 
 24 DECLARE @sql varchar(max)
 25 
 26 SET @user = 'hengshan'
 27 
 28 SET @password = 'rain1q2w3e4r5t'
 29 
 30 
 31 
 32 SET @sql ='
 33 
 34 USE [master]
 35 
 36 GO
 37 -- 先在SQL SERVER中增加 @user 变量所代表的用户
 38 CREATE LOGIN ['+ @user + '] WITH PASSWORD=N'''+ @password +''', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=ON
 39 
 40 GO
 41 -- 再赋予服务器角色 为:sysadmin 
 42 EXEC master..sp_addsrvrolemember @loginame = N'''+@user+''', @rolename = N''sysadmin''
 43 
 44 GO'
 45 
 46 
 47 PRINT(@sql)
 48 
 49 DECLARE @itemCur CURSOR
 50 SET @itemCur = CURSOR FOR
 51     SELECT name from sys.databases where state =0
 52 
 53 OPEN @itemCur
 54 FETCH NEXT FROM @itemCur INTO @dbname
 55 WHILE @@FETCH_STATUS=0
 56 BEGIN
 57 
 58 
 59 
 60     SET @sql = '
 61 
 62 USE ['+ @dbname + ']
 63 
 64 GO
 65 
 66 CREATE USER ['+@user+'] FOR LOGIN ['+@user+']
 67 
 68 GO
 69 
 70 USE ['+ @dbname + ']
 71 
 72 GO
 73 
 74 ALTER USER ['+@user+'] WITH DEFAULT_SCHEMA=[dbo]
 75 
 76 GO
 77 
 78 USE ['+ @dbname + ']
 79 
 80 GO
 81 
 82 EXEC sp_addrolemember N''db_owner'', N'''+@user+'''
 83 
 84 GO'
 85 
 86     PRINT(@sql)
 87 
 88 
 89 
 90     FETCH NEXT FROM @itemCur INTO @dbname
 91 
 92 END
 93 
 94 
 95 
 96 CLOSE @itemCur
 97 
 98 DEALLOCATE @itemCur
 99 
100 
101 
102 
103 --禁用sa帐号
104 
105 SET @sql = '
106 
107 USE [master]
108 
109 GO
110 
111 ALTER LOGIN [sa] DISABLE
112 
113 GO'
114 
115 PRINT(@sql)

 

posted @ 2013-08-02 22:11 桦仔 阅读(...) 评论(...)  编辑 收藏