SQL2005权限控制得很细,到了列一级,我们可以让登录用户只能查询、更新哪些表或列,或新增记录,以下演示了一个权限控制的例子:
第一步创建登录名和用户名
--创建登录名:Viewer,db1为默认数据库,123456为密码
create login Viewer with password='123456',
default_database=db1;
第二步为用户授权(请注意是用户不是登录名,用户和登录名是对应的,但名称可以不一样)
--为登录名Viewer创建用户 查看者
create user 查看者 for login viewer;
--为用户 查看者 指定查询所有表的权限
grant select to 查看者;
第三步验证授权是否生效
以viewer登录
--执行一条创建新表的语句
select * into testdb_bak from testdb
错误提示
在数据库 'db1 中拒绝了 CREATE TABLE 权限。
(因为viewer只有查看表的权限,连查看视图,存储过程,函数的权限都没有)
SQL 2005的权限控制得很细了,如果给 查看者 授予更新表testdb的A1,A2列的更新权限可以用,请先用管理员身份登录,再执行
grant update on testdb(A1,A2) to 查看者;
即可
当然您想回收这个更新权限的话可以用
revoke update on testdb(A1,A2) to 查看者;
就行了