我想要编写一个脚本,以便在SQL Server Express中创建一个admin
用户(使用abcd
密码)。另外,我想给这个用户分配admin
完全权限。
发布于 2009-10-21 22:35:03
您可以使用:
CREATE LOGIN <login name> WITH PASSWORD = '<password>' ; GO
创建登录(有关更多详细信息,请参阅here )。
然后,您可能需要使用:
CREATE USER user_name
要创建与特定数据库的登录名相关联的用户,还需要授予他们访问权限。
(详情请参见here )
您还可以使用:
GRANT permission [ ,...n ] ON SCHEMA :: schema_name
为您为其分配用户的架构设置权限。
(详情请参见here )
您可能会发现另外两个有用的命令是ALTER USER和ALTER LOGIN。
发布于 2015-05-29 00:21:33
如果要创建通用脚本,可以使用Execute语句并将其替换为您的用户名和数据库名
Declare @userName as varchar(50);
Declare @defaultDataBaseName as varchar(50);
Declare @LoginCreationScript as varchar(max);
Declare @UserCreationScript as varchar(max);
Declare @TempUserCreationScript as varchar(max);
set @defaultDataBaseName = 'data1';
set @userName = 'domain\userName';
set @LoginCreationScript ='CREATE LOGIN [{userName}]
FROM WINDOWS
WITH DEFAULT_DATABASE ={dataBaseName}'
set @UserCreationScript ='
USE {dataBaseName}
CREATE User [{userName}] for LOGIN [{userName}];
EXEC sp_addrolemember ''db_datareader'', ''{userName}'';
EXEC sp_addrolemember ''db_datawriter'', ''{userName}'';
Grant Execute on Schema :: dbo TO [{userName}];'
/*Login creation*/
set @LoginCreationScript=Replace(Replace(@LoginCreationScript, '{userName}', @userName), '{dataBaseName}', @defaultDataBaseName)
set @UserCreationScript =Replace(@UserCreationScript, '{userName}', @userName)
Execute(@LoginCreationScript)
/*User creation and role assignment*/
set @TempUserCreationScript =Replace(@UserCreationScript, '{dataBaseName}', @defaultDataBaseName)
Execute(@TempUserCreationScript)
set @TempUserCreationScript =Replace(@UserCreationScript, '{dataBaseName}', 'db2')
Execute(@TempUserCreationScript)
set @TempUserCreationScript =Replace(@UserCreationScript, '{dataBaseName}', 'db3')
Execute(@TempUserCreationScript)
https://stackoverflow.com/questions/1601186
复制相似问题