【问题标题】:How to grant all priviledges and permisisons to myself?如何将所有特权和权限授予自己?
【发布时间】:2013-07-24 07:19:49
【问题描述】:

我现在不想创建角色并以这种方式扮演 - 只是想对此进行问答。当我执行时:

grant all to [LameDomain\CoolDude]

我得到数据库的咆哮,(a)该命令已被弃用(仅出于兼容性原因保留)并且(b)我不能对自己这样做(这是真正的问题)。注意,我是蹩脚领域的帅哥。

所以,我的问题(按重要性排序)如下。

  1. 可以使用什么语法将所有权限授予自己(如果可能,单行)?
  2. 如有必要,建议使用什么语法将所有权限授予 self?
  3. “grant all to XXX”命令的当前版本是什么?

编辑

当我尝试关注this article 时,当我尝试执行sp_addrolemember 时,我收到数据库中不存在用户或角色的错误。但是,当尝试调用 sp_grantdbaccess 时,我发现用户在数据库中已经有一个名称。 WTF?!

【问题讨论】:

  • 您正试图从特权用户执行命令,对吧?

标签: sql-server privileges


【解决方案1】:

您可以将用户添加到系统角色db_owner。这样,用户将拥有数据库的所有权限,包括 ALTERCREATE 对象。

db_owner 固定数据库角色的成员可以执行所有 数据库上的配置和维护活动。

USE_database_name
GO
EXEC sp_addrolemember 'db_owner', 'user_name'
GO

至于GRANT ALL,您仍然可以使用它,但它不会授予所有权限。您可以在GRANT 上的文档中查看将授予的权限列表

【讨论】:

  • 但是我怎样才能承认自己呢?有可能吗?!
  • 是的,如果您有适当的权限,在这种情况下是在服务器级别。例如,如果您的登录名在 sysadmin 组中。您不能授予您自己或其他任何人没有的权限。否则,这将是服务器安全的一大威胁。
  • 抱歉,我的问题不清楚。是否可以使用 grant 将所有权限授予我自己,而不是将我的名字添加到角色中?我可以对其他用户执行 grant all,但不能对我自己执行...
猜你喜欢
  • 1970-01-01
  • 2016-08-10
  • 2014-02-03
  • 1970-01-01
  • 2020-11-22
  • 2014-02-04
  • 1970-01-01
  • 2015-09-06
  • 2019-07-26
相关资源
最近更新 更多