因个人对数据库授权命令的喜爱,所以写了这篇文章,一来学会命令的使用,

二来为以后复习之用。

---------------------------------------------------------------------------------------------------------------------

1)授权命令 grant,语法格式(SQL语句不区分大小写):
Grant  <权限>  on  表名[(列名)]  to  用户 With  grant  option

或 GRANT <权限> ON <数据对象> FROM <数据库用户>  

//数据对象可以是表名或列名

//权限表示对表的操作,如select,update,insert,delete
 
注:授权命令是由数据库管理员使用的,若给用户分配权限时带With  grant  option子句,

则普通用户获权后,可把自己的权限授予其他用户。

Grant单词翻译:
vt.承认;同意;准许;授予
n.拨款;补助金;授给物(如财产、授地、专有权、补助、拨款等)
vi.同意

2)回收权限 revoke
REVOKE <权限> ON <数据对象>  FROM <数据库用户名>

revoke翻译:
vt.撤销,取消;废除 vi.有牌不跟 n.有牌不跟

 实战:

因机房装的是SQL2000,因此我测试时使用的是SQL2000

1) 首先我在服务器(local)上添加了一个用户user1,并将其添加了数据库student,

其拥有的权限为public(public为最小权限),截图如下:

 

 数据库student中的表如下图所示,其中有一张表为student(下图第四个)

 当我们没有给用户 user1分配查询(select)权限时,在查询分析器中用user1登陆数据库student,

其连最基本的查询操作都不能执行,截图如下:

 

 下面我们用授权命令grant给user1添加查询的权限(注意要用管理员账户才能执行以下命令)

截图如下:

将查询操作授权给user1后,用user1再次执行select命令,发现已经可以查询数据了,

截图如下:

当我们想除去用户user1的查询操作时,执行以下命令即可

//回收用户user1对表student的查询权限
revoke select on student from user1
//或 revoke select on student from user1 cascade











本文转载:CSDN博客