代码之家  ›  专栏  ›  技术社区  ›  Rod

在我的SQL Server中为我的数据库设置用户

  •  2
  • Rod  · 技术社区  · 15 年前

    我刚刚在SQLServer中为我的数据库创建了一个新用户。我有4个表要授予插入、更新、选择和删除权限。我在新用户的Securables区域手动执行了此操作。

    有没有更好的方法可以让你触摸每一个物体?如果是,怎么做?

    谢谢,

    棒。

    2 回复  |  直到 15 年前
        1
  •  2
  •   marc_s    15 年前

    如果你想精细地控制谁能做什么,我认为你能做的不多——你做得很好。

    gbn的方法非常巧妙—另一种“简单”设置的方法(当您不需要大量不同的权限时)是:

    • 授予每个用户(或角色)数据库角色 db_datareader -这允许读取访问 (选择)在所有表和视图上

    • 授予每个用户(或角色)数据库角色 db_datawriter

    如果还需要授予存储过程的执行权限,很遗憾没有预定义的角色可供使用。但是,您可以创建自己的数据库角色,然后向该角色授予执行权限。最大的好处是:这个执行存储过程的权限也适用于将来在数据库中创建的所有存储过程!

    要定义新角色,请使用以下命令:

    CREATE ROLE db_executor
    GRANT EXECUTE TO [db_executor]
    

    然后你就可以分配 db_executor 对于那些需要能够在数据库中执行存储过程和存储函数的用户。

        2
  •  4
  •   gbn    15 年前

    • 表属于一个模式(我们称之为数据, CREATE SCHEMA )
    • CREATE ROLE , sp_addrolemember )
    • GRANT INSERT ON schema::data to myRole )