授予对特定表以外的数据库的权限

Tom*_*ich 3 sql-server

我刚开始用MS-SQL,所以要耐心跟我:)我有3个数据库,我需要给予所有3个数据库用户读取权限,对我的挑战是我可以给他的权限,除了为具体表?

Sir*_*lot 5

从广义上讲,您可以通过两种方式做到这一点。

  1. 授予您希望他们访问的表的读取权限。或者,
  2. 授予他们访问所有表的权限,然后拒绝访问您不希望他们访问的表。

DBA 给予...而 DBA 带走

有很多文章和参考资料可以解释它们如何协同工作,例如这篇文章。

要搜索的关键字是“sql server grant & deny”。可以对整个数据库、模式或特定对象授予权限。(表、视图、存储过程等)

这可以按用户或通过Role 应用。您可以创建一个新角色并为该角色授予所需的权限,然后授予用户,而不是修改现有角色。

最合适的方法取决于他们应该/不应该访问多少表以及您必须为多少用户重复此操作。

如果数据库中有 100 个表,并且用户应该读取其中的 90 个,id grant + deny。

如果您必须为 5/10/50 用户做同样的事情,我会创建一个角色。