Sql &引用;更改角色db“所有者添加成员A”;不';行不通
当我执行Sql &引用;更改角色db“所有者添加成员A”;不';行不通,sql,sql-server,database,Sql,Sql Server,Database,当我执行alterroleb\uowner addmembera时,它给出以下错误 Msg 15151,第16级,状态1,第4行 无法更改角色“A”,因为它不存在或您没有权限 这里提到, 限制和限制 无法更改固定数据库角色的名称 但我找不到与这个错误有任何关系。我要做的是添加一个成员,而不是更改固定的角色名 非常感谢您对解决此问题的任何支持首先删除现有用户角色,然后使用以下命令: USE Databasename GO -- create new role for your s to belon
alterroleb\uowner addmembera
时,它给出以下错误
Msg 15151,第16级,状态1,第4行无法更改角色“A”,因为它不存在或您没有权限 这里提到, 限制和限制 无法更改固定数据库角色的名称 但我找不到与这个错误有任何关系。我要做的是添加一个成员,而不是更改固定的角色名
非常感谢您对解决此问题的任何支持首先删除现有用户角色,然后使用以下命令:
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
我认为你错过了一步。您有一个登录名,但没有将该登录名作为用户添加到数据库中。以下所有步骤都是您需要的。您的工作中似乎缺少
CREATE USER
步骤(数据库级调用)
我认为您不需要创建登录名
,我只想包含它,这样您就可以看到完成此操作所需的所有信息
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
使用[master]
去
创建登录名[A],密码=N'',默认数据库=master,检查过期时间=OFF,检查策略=OFF
去
使用[你的数据库]
去
为登录创建用户[A]
去
更改角色db_所有者添加成员[A]
去
在尝试此操作之前,请将数据库更改为正确的值 我尝试了sp_addrolemember和ALTER角色。但他们中没有一个人成功了。在这两者之间,“sp_addrolemember”不推荐使用。我正在使用sql server 2016。您确定您有权运行
ALTER
?因为,你所拥有的应该有用。或者,数据库用户A
不存在(更可能是这种情况)。该用户已创建。但我不确定这是否是权限问题。鉴于您提供的SQL,我无法重现您的错误消息。该错误表明您试图运行alterrole[A]…
。您能提供完整的复制脚本吗?CREATE LOGIN[a]密码为0x02003F6C7A9A9677F786B5F3E89CFD9233464BB8423932575B80AE9C2AD2134B8B730819CA1EC682E40A636C663675534D279117AF1D5246869F1E1B7EF978B0E249A4散列,SID=0xD7920B0B559D946A8389E2A9024B93F,默认数据库=[master],勾选策略=OFF,选中\u EXPIRATION=OFF GO ALTER ROLE db\u owner ADD MEMBER[A]
是的,这样做有效。但在这里,你创造了一个角色。我已经有了要添加的用户列表。我使用了创建登录是,确切地说“创建用户”是缺少的步骤。现在它很好用,非常感谢RichardsHanks,这很有帮助。实际上,对我来说有问题的部分是登录必须在主上下文中创建,但是用户必须在相关数据库中