在我创建的大多数数据库中,我需要授予执行以下操作的权限:
- 对数据库中的所有表执行 SELECT/INSERT/UPDATE/DELETE
- 执行数据库中的所有(用户)存储过程
为用户datareader
提供datawriter
足够的存储空间或我需要提供哪些其他角色/权限?
如果我需要做的不仅仅是datareader
and datawriter
,你能否指出我正确的方向来创建一个脚本来影响数据库中的所有用户。
提前致谢
在我创建的大多数数据库中,我需要授予执行以下操作的权限:
为用户datareader
提供datawriter
足够的存储空间或我需要提供哪些其他角色/权限?
如果我需要做的不仅仅是datareader
and datawriter
,你能否指出我正确的方向来创建一个脚本来影响数据库中的所有用户。
提前致谢
使用(1)你应该很好地给他们
db_datareader
和db_datawriter
。在 (2) 上,我可能会创建一个角色,然后授予该角色对所有存储过程的执行权限,而不是将其授予每个单独的用户。然后只需将这些用户添加到该角色。如果您有一个模式名称下的所有存储过程,您应该能够授予该模式执行。这将节省时间并且不必担心将新过程添加到数据库中。
除了肖恩的回答和你的评论..
仅由存储过程或视图维护的表不需要任何显式权限。“所有权链接 2 声明它们没有被检查:这包括拒绝。
我确实更喜欢模式,但我也不允许直接访问表。对于给定的模式(桌面、WebGUI 等),我假设所有具有权限的客户端都需要使用它。在此范围内,我也有一些应用程序安全性,例如基于 SUSER_SNAME() 或类似的跟踪用户。