【问题标题】:How to assign permission to a database user without using database role?如何在不使用数据库角色的情况下为数据库用户分配权限?
【发布时间】:2019-08-05 07:49:23
【问题描述】:

我在数据库中向我的用户授予对某些对象的权限,有没有办法在不使用数据库角色的情况下向用户授予权限?

我可以通过创建数据库角色轻松做到这一点,但我不想使用角色。 我通过数据库用户为我的用户分配了一些对象,在 Securables 选项卡中,它不起作用!

create user [user_test] for login [login_test]
create role role_test authorization user_test
exec sp_addrolemember 'role_test', 'user_test'
grant select on object::dbUser.tbl_05 to role_test

我希望我可以向我的用户授予权限而不是使用数据库角色。

【问题讨论】:

  • 是的,只需授予用户权限即可。所以GRANT EXECUTE ON dbo.YourProc TO YourUser; 而不是GRANT EXECUTE ON dbo.YourProc TO YourRole;。此外,sp_addrolemember 已被弃用,您应该真正使用ALTER ROLE ... ADD MEMBER
  • 哦,谢谢伙计,我做了一次,但没有得到我的结果,我又做了一次,它成功了!非常感谢您告诉我 sp_addrolemember 已被弃用,我现在没有!祝你好运;)
  • 我承认,即使微软也没有停止在他们的文档中使用它(example),如果我没记错的话,它在 2008 年被弃用了。
  • 实际上我在一小时前在 Microsoft 文档中阅读了它,我认为唯一的方法就是使用它!感谢您通知我!

标签: sql sql-server permissions


【解决方案1】:

您在这里有(至少)2 个选项,您可以将权限直接分配给您的数据库用户(如评论中所述),也可以grant permission on a certificate,这可能让您在生产环境中更好地控制。

【讨论】:

  • 感谢您的有用回复!
猜你喜欢
  • 2016-03-30
  • 2020-06-21
  • 1970-01-01
  • 2013-09-14
  • 2017-10-13
  • 2018-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多