设为首页收藏本站language 语言切换
查看: 2036|回复: 0
收起左侧

微软 SQL 2005 中权限控制粒度举例详解

[复制链接]
发表于 2010-2-25 10:51:42 | 显示全部楼层 |阅读模式
<p >SQL 2005 权限控制得很细,到了列一级,我们可以让登录用户只能查询、更新哪些表或列,或新增记录,以下演示了一个权限控制的例子: <p ><b>第一步创建登录名和用户名</b><p >--创建登录名:Viewer,db1为默认数据库,123456为密码。<p >create login Viewer with password='123456',<p >default_database=db1; <p ><b>第二步为用户授权</b><p >请注意是用户不是登录名,用户和登录名是对应的,但名称可以不一样。<p >--为登录名Viewer创建用户 查看者。<p >create user 查看者 for login viewer; <p >--为用户 查看者 指定查询所有表的权限<p >grant select to 查看者; <p ><b>第三步验证授权是否生效</b><p >以viewer登录。 <p >--执行一条创建新表的语句: <p >select * into testdb_bak from  testdb; <p >错误提示: <p >在数据库 db1 中拒绝了 CREATE TABLE 权限。 <p >(因为viewer只有查看表的权限,连查看视图,存储过程,函数的权限都没有)<p >SQL 2005的权限控制得很细了,如果给 查看者 授予更新表testdb的A1,A2列的更新权限可以用,请先用管理员身份登录,再执行 <p >grant update on testdb(A1,A2) to 查看者; <p >即可。 <p >当然您想回收这个更新权限的话可以用:<p >revoke update on testdb(A1,A2) to 查看者; <p >就行了。<p ><p align="right">                                 <p align="center"></p></p>
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-10 15:49 , Processed in 0.083511 second(s), 24 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表