您的位置:首页 > 数据库 > Oracle

[Oracle 学习笔记] 07 DCL

2012-12-08 11:39 465 查看
  DCL(Data Control Language)数据控制语言,用户对某类数据具有何种操作权限是有DBA决定。Oracle通过数据控制语言的GRANT语句完成权限授予操作,REVAKE 语句完成权限收回操作,权限的结果存入Oracle的数据字典中。 权限分为两类: 系统权限和对象权限

  系统权限

  是在数据库中执行某种特定操作的权利,系统权限并不针对某个特定的对象,而是针对整个数据库范围。常用的系统权限有:

CREATE SESSION 连接到数据库上

CREATE SEQUENCE 创建序列,序列是一系列数字,通常用来自动填充主键列

CREATE SYNONYM   创建同名对象

CREATE TABLE  创建表

CREATE ANY TABLE 在任何模式中创建表

DROP TABLE 删除表

DROP ANY TABLE    删除任何模式中的表

CREATE PROCEDURE 创建存储过程

EXECUTE ANY PROCEDURE 执行任何模式中的存储过程

CREATE USER 创建用户

DROP USER   删除用户

CREATE VIEW 创建视

  对象权限

  是针对特定的模式对象执行操作的权利,只能针对模式对象来设置和管理对象全新啊,这些对象包括 表、 视图、 存储过程 等常用的对象权限有:

SELECT 允许执行查询操作

INSERT 允许执行插入操作

UPDATE 允许执行修改操作

DELETE 允许执行删除操作

EXECUTE 语序执行存储过程

  用户

  CREATE USER user_name IDENTIFIED BY password [DEFAULT TABLESPACE tabspace_name] [TEMPORARY TABLESPACE tabspace_name];

  SQL> CONNECT system/1234

  SQL> CREATE USER wang IDENTIFIED BY office;

  因为用户wang还没有得到连接权限 所以使用wang登陆会出现错误

  SQL> CONNECT wang/office

  ERROR: ORA-01045: user WANG lacks CREAT SESSION privilege; logon denied

  权限控制

  SQL> GRANT CREATE SESSION, CREATE USER, CREATE TABLE TO wang;

  将CREATE SESSION 和 EXECUTE ANY PROCEDURE 授予所有用户

  SQL> GRANT CREATE SESSION, EXECUTE ANY PROCEDURE TO PUBLIC;

  回收权限

  REVOKE system_privileges FROM user_name;

  SQL> REVOKE CREATE TABLE FROM wang;

  查看权限

  查看数据字典中的user_sys_privs 系统权限 user_tab_privs_recd 对象权限

  SQL> SELECT * FROM user_sys_privs;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: