sqlserver给用户授权
发布时间: 2024-11-12 17:46:46
在数据库内部,与迄今为止我们对登录验证的处理方式不同,我们可以把权限分配给角色而不是直接把它们分配给全局组。这种能力使得我们能够轻松地在安全策略中使用SQL Server验证的登录。即使你从来没有想要使用SQL Server登录帐户,本文仍旧建议分配权限给角色,因为这样你能够为未来可能出现的变化做好准备。
创建了数据库之后,我们可以用sp_grantdbaccess存储过程授权DB_Name Users组访问它。但应该注意的是,与sp_grantdbaccess对应的sp_denydbaccess存储过程并不存在,也就是说,你不能按照拒绝对服务器访问的方法拒绝对数据库的访问。
如果要拒绝数据库访问,我们可以创建另外一个名为DB_Name Denied Users的全局组,授权它访问数据库,然后把它设置为db_denydatareader以及db_denydatawriter角色的成员。注意SQL语句权限的分配,这里的角色只限制对对象的访问,但不限制对DDL(Data Definition Language,数据定义语言)命令的访问。
正如对登录过程的处理,如果访问标记中的任意SID已经在Sysusers系统表登记,SQL将允许用户访问数据库。因此,我们既可以通过用户的个人NT帐户SID授权用户访问数据库,也可以通过用户所在的一个(或者多个)组的SID授权。
为了简化管理,我们可以创建一个名为DB_Name Users的拥有数据库访问权限的全局组,同时不把访问权授予所有其他的组。这样,我们只需简单地在一个全局组中添加或者删除成员就可以增加或者减少数据库用户。
热点内容