批量添加用户,提升效率
在MSSQL数据库管理中,添加用户是必不可少的一项工作。但是,如果在需要创建大量用户时,逐个手动添加是非常费时费力的。因此,批量添加是必不可少的一种解决办法。本文将介绍如何使用T-SQL脚本批量添加用户,提高工作效率。
使用T-SQL脚本添加单个用户
在使用T-SQL脚本批量添加用户前,先来了解下如何使用T-SQL脚本添加单个用户。
USE [master]
GO
CREATE LOGIN [UserName] WITH PASSWORD=N'password'
GO
USE [MyDatabase]
GO
CREATE USER [UserName] FOR LOGIN [UserName]
GO
其中,UserName为自定义的用户名,password为指定的密码,MyDatabase为用户所在的数据库名称。
创建包含多个用户名的表格
下一步,需要准备包含多个用户名的表格。这个表格可以由Excel或其他工具创建。这里我们以Excel为例,将学生名单保存为一个CSV文件。
打开Excel,并将名单输入到第一列。
例:
列1
张三
李四
王五
选择“另存为”,在“文件类型”中选择“CSV(逗号分隔)”,将文件保存为CSV格式。
接下来,在SQL Server Management Studio中,右键单击“表格”并选择“新建表格...”
用以下脚本的方式创建表格:
CREATE TABLE UserList
(
UserName varchar(50)
)
在“表格设计”中,右键单击列“UserName”并选择“导入数据...”
在“导入数据”向导中,选择导入类型为“CSV 文件”,并指定步骤1中生成的CSV文件。
导入后,需要检查数据是否正确。如果一切正常,点击“确定”创建表格。
使用T-SQL脚本批量添加用户
在为每个用户手动编写T-SQL脚本是非常费时费力的,因此我们可以使用以下脚本来批量添加用户:
USE [master]
GO
DECLARE @UserName AS VARCHAR(200)
DECLARE UserList_Cursor CURSOR FOR
SELECT UserName FROM [MyDatabase].[dbo].[UserList]
OPEN UserList_Cursor
FETCH NEXT FROM UserList_Cursor INTO @UserName
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @SQLStatement VARCHAR(4000)
SET @SQLStatement = 'USE [master];CREATE LOGIN [' + @UserName + '] WITH PASSWORD=N''Password'' ; USE [MyDatabase]; CREATE USER [' + @UserName + '] FOR LOGIN [' + @UserName + ']'
EXEC (@SQLStatement)
FETCH NEXT FROM UserList_Cursor INTO @UserName
END
CLOSE UserList_Cursor
DEALLOCATE UserList_Cursor
上述代码不仅会从UserList表格中检索用户名,还会在循环中为每个用户名编写脚本,并将其执行。执行结果将为SQL Server中的每个用户创建一个登录名和一个用户。
总结
在MSSQL中批量添加用户可大大提高工作效率。本文介绍了如何使用T-SQL脚本为单个用户创建登录名和用户,以及如何为多个用户创建CSV表格,最终使用T-SQL脚本批量添加多个用户。