授权与撤销访问权限

一、数据库元素的拥有者是创建该数据库元素时所使用的用户名。拥有者拥有对该数据库元素的一切操作权限,其他用户对该数据库元素没有任何权限,这些用户要使用数据库,必须经过拥有者授权。

(在实践中,我几乎从没有使用到“用户与数据库权限”这部分知识)

二、访问权限的类型

1.SELECT

2.INSERT

其权限可以授予特定列,而不是整个数据库。(从没有用过)

3.UPDATE

4.DELETE

5.REFERENCES(未使用过)

6.EXECUTE

允许用户执行存储过程(不明白存储过程的作用,也没有用过,不会用)

7.ALL PRIVILEGES

授予用户某个表或某个视图当中的所有上述权限。

8.默认情况下,非拥有者通过授权获得数据库的访问权限后,并不具备将其获得权限授予其他用户的权限,但是,若用户在授予权限的过程中使用了下面的子句:

WITH GRANT OPTION

非拥有者用户就可以向其他用户授予自己的权限。

(这种理解,有待验证)

三、存储访问权限

1.表及视图的访问权限被存储于数据字典当中。通常,访问权限被分割成两个系统表,这两个系统表的名称类似于SYSTABLEPERM和SYSCOLPERM。

SYSTABLEPERM:用在访问权限授予整个表或整个视图时。

SYSCOLPERM:用在授权给某个表或视图当中的特定列之上。

这两个表有复杂的内容,要研究。

学习资料:

《SQL语言详解》第3版,P180

我在MySQL中用

SHOW DATABASES

语句,得到的结果中没有这两个表,看到的系统数据库(非我创建)有

information_schema

test

performance_schema

不知道这三个数据的作用是什么,要研究。

学习资料:

通过 mysql 的 INFORMATION_SCHEMA信息数据库得到元数据

http://www.cppblog.com/flyinghare/archive/2012/03/26/169036.html

四、授权

1.创建数据库元素的用户或具有GRANT权限的用户才能授权其他用户,语法是:

GRANT type_of_rights

ON table_or_view_name

TO user_id

给经理访问sales_summary视图的权限,例子:

GRANT SELECT

ON sales_summary

TO acctag_mgr

让经理可以给其他用户传递权限,例子:

GRANT SELECT

ON sales_summary

TO acctag_mgr

WITH GRANT OPTION

为某些用户设置对基表的有限权限,例子

GRANT SELECT,UPDATE( selling_price,sale_date)

ON  volume

TO intern1,intern2,intern3;

五、撤销权限

1.删除之前授予的权限,语句:

REVOKE access_rights

ON table_or_view_name

FROM user_id

例子:

REVOKE SELECT,UPDATE(selling_price,sale_date)

ON volume

FROM intern1,intern2,inter3;

不懂的例子一:

REVOKE SELECT

ON sales_summary

FROM acctg_mgr

RESTRICT;

不懂的例子二:

REVOKE SELECT

ON sales_summary

FROM acctg_mgr

CASCADE;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值