eyk*_*nal 11 sql-server-2008 security sql-server permissions ssms
我在VIEW DEFINITION为我的一个用户在架构级别适当设置权限时遇到问题。我已经创建了架构TestSchema并添加了一些表。用户目前有权限设置为访问和修改表(SELECT,UPDATE,DELETE通过等)dbo_datareader和dbo_datawriter角色。但是,他们看不到 SSMS 对象资源管理器中的任何表。
我试过授予查看定义的权限:
grant view definition on SCHEMA :: [TestSchema] to [User]
Run Code Online (Sandbox Code Playgroud)
那没有用。我尝试设置表级权限:
grant view definition on [TestSchema].[NewTable] to [User]
Run Code Online (Sandbox Code Playgroud)
那也没有用。然后我尝试了一个全面的资助:
grant view definition to [User]
Run Code Online (Sandbox Code Playgroud)
那确实奏效了;他们现在可以看到TestSchema,以及他们不应该访问的其他模式。
我的目标是允许用户查看给定模式中的所有表。我如何做到这一点?如果默认情况下我应该能够执行此操作,我应该查看哪些权限才能找到为什么不能执行此操作?
Gre*_*ker 13
简短回答:不要使用db_datareader或db_datawriter或它们的拒绝等价物。它们仅用于向后兼容。使用它们会导致您面临的问题。
如果您想授予主体 Alice 对架构 Sales 中所有表值对象的 SELECT、INSERT、UPDATE 和 DELETE 权限,请使用以下命令。
GRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA::Sales TO Alice ;
Run Code Online (Sandbox Code Playgroud)
如果您想为主体 Alice 授予对所有模式中所有表值对象的 SELECT、INSERT、UPDATE 和 DELETE 权限,请使用以下命令。
GRANT SELECT, INSERT, UPDATE, DELETE TO Alice ;
Run Code Online (Sandbox Code Playgroud)
然后元数据可见性将正常工作。
| 归档时间: |
|
| 查看次数: |
43575 次 |
| 最近记录: |