当我执行ALTER ROLE db_owner ADD MEMBER A
时,它会发出以下错误。
Msg 15151,Level 16,State 1,Line 4
无法更改角色'A',因为它不存在或您没有权限。
这里提到ALTER ROLE;
限制和限制
您无法更改固定数据库角色的名称。
但是我找不到与错误有任何关系。我要做的是添加一个不更改固定角色名称的成员。
非常感谢任何有关解决此事的支持
答案 0 :(得分:8)
我认为你错过了一步。您有登录,但您没有将登录作为用户添加到数据库。以下所有步骤都是您所需要的。您的工作中似乎缺少CREATE USER
步骤(数据库级别调用)。
我认为你不需要CREATE LOGIN
,我只是想包含这个,所以我们可以看到所有这一切。
USE [master]
GO
CREATE LOGIN [A] WITH PASSWORD=N'<password>', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
USE [YourDatabase]
GO
CREATE USER [A] FOR LOGIN [A]
GO
ALTER ROLE db_owner ADD MEMBER [A]
GO
在尝试此操作之前,将YourDatabase
更改为正确的值。
答案 1 :(得分:1)
首先删除现有用户角色,然后使用以下命令:
USE Databasename
GO
-- create new role for your s to belong to
CREATE ROLE s
GO
-- add s Role to db_owner
EXEC sys.sp_addrolemember
@rolename = N'db_owner',
@membername = N's';
GO
GO