我有以下脚本,但执行时不断出现错误。
USE [master]
GO
If Not EXISTS (Select loginname from [master].[dbo].[syslogins]
Where name = 'xxxx' and dbname = 'xxxx-xxxx')
BEGIN
CREATE LOGIN [xxxx] WITH PASSWORD=N'xxxxx', DEFAULT_DATABASE=[xxxx-xxxx], DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
ALTER LOGIN [xxxx] ENABLE
END
GO
USE [xxxx-xxxx]
ALTER USER [xxxx] WITH DEFAULT_SCHEMA=[db_datareader]
ALTER ROLE [db_datareader] ADD MEMBER [xxxx]
ALTER ROLE [db_datawriter] ADD MEMBER [xxxx]
ALTER ROLE [db_owner] ADD MEMBER [xxxx]
GO
Run Code Online (Sandbox Code Playgroud)
我尝试了该脚本的几种排列,但没有成功。它确实创建了登录名,但不允许我更改“用户”或“角色”属性。当我可以让它正常工作时,它不会对用户配置文件进行更改。
您在更改之前缺少创建用户。
登录 - 获取服务器的访问权限 数据库用户 - 获取特定数据库的访问权限
所以在你的脚本中添加create user from login ...
USE [xxxx-xxxx]
create user [xxxx] from login [xxxx] <--- this is needed !
ALTER USER [xxxx] WITH DEFAULT_SCHEMA=[db_datareader]
ALTER ROLE [db_datareader] ADD MEMBER [xxxx]
ALTER ROLE [db_datawriter] ADD MEMBER [xxxx]
ALTER ROLE [db_owner] ADD MEMBER [xxxx]
GO
Run Code Online (Sandbox Code Playgroud)
一些事情 :