“ALTER ROLE db_owner ADD MEMBER A”不起作用

时间:2017-03-03 04:13:13

标签: sql sql-server database

当我执行ALTER ROLE db_owner ADD MEMBER A时,它会发出以下错误。

  

Msg 15151,Level 16,State 1,Line 4
  无法更改角色'A',因为它不存在或您没有权限。

这里提到ALTER ROLE;

  

限制和限制

     

您无法更改固定数据库角色的名称。

但是我找不到与错误有任何关系。我要做的是添加一个不更改固定角色名称的成员。

非常感谢任何有关解决此事的支持

2 个答案:

答案 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
相关问题