SQL Server表授权:为获得安全性和有效率(sqlserver表授权)
授权是实施安全策略中重要的一环,也是实现SQL Server访问控制的主要工作。在SQL Server中,授予用户表和视图的权限是一项基础性的任务,且是关于数据的安全的关键点。虽然在不同的环境中,表的授权方式可以有所不同,但其授权原则始终不变。
在开始前,第一步必定是采用最低权限的原则以及特权的原则。特权原则是不仅要受权,而且要求受权的用户只赋予用户最需要的权限,不要把更多的权限赋予给用户,以此来保持系统的安全性。
接着,需要实行为用户授予访问表的权限,这里分为两种方法:第一种是使用T-SQL语句,可以直接授权操作对象及相应的权限;第二种是使用GUI界面来授权,这种方法比较方便,可以非常直观的查看授权的结果,而无需具体担心繁琐的T-SQL语句。
下面给出一段示例代码,用于授予名为TestUser的账户对table1表的查询和更新操作的权限。
use testdb
gogrant select,update on table1 to TestUser;
最后,表授权完成后,需要对被授权者查看它拥有哪些权限,可以使用以下代码,获取secure_user数据库中user1用户拥有table1表的权限:
select user_name(uid) as 用户名,
obj_name(id) as 对象名,permission_name as 权限名
from sysprotects where id = object_id(N'table1') and uid = user_id(N'user1')
从上面,可以看出,SQL Server中表的授权可以实现安全性和有效率,用户只需要控制分配权限和查看原有权限,就可以实现对表的访问控制。而且,SQL Server支持将表授权操作封装成存储过程,便于管理员在授权的过程中的快速完成表的授权。