我们有一个测试数据库和一些测试登录,我们希望通过脚本为db_owner提供访问权限。通常我们必须进入登录并右键单击用户名并转到用户映射并选择要与其关联的数据库并授予其所有者访问权限并单击确定。
答案 0 :(得分:50)
你需要做两件事,都在目标数据库的上下文中运行(即首先执行USE (database)
):
CREATE USER [LoginName] FOR LOGIN [LoginName]
EXEC sp_addrolemember N'db_owner', N'LoginName'
通常,如果您有SQL Server Management Studio 2005或更高版本,则可以进入UI进行操作,填写对话框(在这种情况下,将用户分配给数据库并添加角色),以及然后单击顶部的“脚本”按钮。它不是执行命令,而是将操作的脚本写入新的查询窗口。
答案 1 :(得分:13)
EXEC sp_addrolemember'db_owner','MyUser'
答案 2 :(得分:4)
以下是如何将ALTER ROLE
与名为MyLogin
的现有服务器登录名一起使用。
USE MyDatabase
CREATE USER MyLogin FOR LOGIN MyLogin
ALTER ROLE db_owner ADD MEMBER MyLogin
GO
https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-role-transact-sql
答案 3 :(得分:1)
我想提出另一种可以帮助某人的解决方案...
-- create the user on the master database
USE [master]
GO
CREATE LOGIN [MyUserName] WITH PASSWORD=N'MyPassword'
CREATE USER [MyUserName] FOR LOGIN [MyUserName]
GO
-- create the user on the target database for the login
USE [MyDatabaseName]
GO
CREATE USER [MyUserName] FOR LOGIN [MyUserName]
GO
-- add the user to the desired role
USE [MyDatabaseName]
GO
ALTER ROLE [db_owner] ADD MEMBER [MyUserName]
GO