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;

 

相关文章:

  • 2021-05-28
  • 2021-06-09
  • 2021-11-30
  • 2021-05-24
  • 2021-06-17
  • 2021-08-06
  • 2021-11-21
猜你喜欢
  • 2021-12-14
  • 2021-09-08
  • 2021-08-03
  • 2022-02-22
  • 2021-07-20
  • 2021-10-04
  • 2021-10-23
相关资源
相似解决方案