Rau*_*DBA 3 stored-procedures permissions role functions sql-server-2014
我们有 4 个包含不同程序和功能的数据库。到目前为止,实际应用程序只能使用 sa 帐户访问数据库,现在我想将应用程序更改为使用 sa 帐户以外的其他帐户。为此,我需要创建一个新的 SQL 登录名并为该登录名分配某些权限。有没有类似脚本的方法来确定我需要为新创建的用户分配什么权限?
@Ross的链接肯定会帮助您确定语法和所有选项,但需要更多指导:
有两个数据库角色可能对您有用,它们是 db_datawriter 和 db_datareader。它们中的两个可能会处理您的大部分 CRUD(创建、读取、更新、删除)操作。
ALTER ROLE db_datareader ADD MEMBER <user>
ALTER ROLE db_datawriter ADD MEMBER <user>
Run Code Online (Sandbox Code Playgroud)
如果您愿意/需要,您可以获得比这更细粒度的信息。例如,允许插入,但不允许更新或删除表。
你在标签中提到了存储过程,所以这些可能有点棘手。一种更简单的方法是在架构上授予执行权限。但您也可以一次授予他们一份。
--all stored procedures in schema dbo
GRANT EXECUTE ON SCHEMA::dbo TO <user>
--specific stored procedure
GRANT EXECUTE ON dbo.uspDoMyThing TO <user>
Run Code Online (Sandbox Code Playgroud)
最后,如果您允许应用程序执行 TRUNCATE,那么除了 db_datawriter 之外,它们实际上还需要 ALTER TABLE 权限。
GRANT ALTER TABLE ON dbo.MyTable TO <user>
Run Code Online (Sandbox Code Playgroud)
恭喜您正确控制了服务器的安全性。即使您最终必须在数据库中授予 db_owner 权限,这也比 sysadmin 好得多。
一些最后的注意事项:
归档时间: |
|
查看次数: |
63 次 |
最近记录: |