SQL Fundamentals || DCL(Data Control Language) || 系统权限&对象权限管理(GRANT&REVOKE)

Posted The Scented Path

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Fundamentals || DCL(Data Control Language) || 系统权限&对象权限管理(GRANT&REVOKE)相关的知识,希望对你有一定的参考价值。

语句

解释

Create user

Creates a user(usually performed by a DBA)

Grant

Gives other users privileges to access the objects

Create role

Creates a collection of privileges, usually performed by a DBA

Alter user

Changes a user\'s password

Revoke

Removes privileges on an object from users

 

通过数据字典查询

数据字典视图

描述

dba_users

用户

dba_ts_quotas

每个用户空间使用配额

dba_profiles

查询profile文件

dba_sys_privs

查询用户权限

dba_roles

查看角色

ROLE_SYS_PRIVS

授予角色的系统权限

ROLE_TAB_PRIVS

授予角色的表权限

USER_ROLE_PRIVS

授予用户的角色

USER_SYS_PRIVS

授予用户的系统权限

USER_TAB_PRIVS_MADE

用户对象上授予的权限

USER_TAB_PRIVS_RECD

授予用户的对象权限

USER_COL_PRIVS_MADE

用户某列上授予的对象权限

USER_COL_PRIVS_RECD

授予用户某列上的对象权限

 

权限管理

  • Oracle系统权限与对象权限的划分;
  • 用户的授权操作GRANT与权限回收REVOKE操作;

 

权限分类

所有的权限应该由DBA进行控制,在SQL语句规范之中针对于权限的控制提供了两个核心的操作命令:

  • GRANT(授权)
  • REVOKE(回收权限)

系统权限

进行数据库资源操作的权限,例如:创建数据表、索引等权限;

系统权限主要指的是资源操作的权限

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

系统权限针对的是全局用户

例如:数据库管理员(DBA)是数据库系统中级别最高的用户,它拥有一切的系统权限以及各种资源的操作能力。

在Oracle中有100多种的系统权限,并且不同的数据库版本相应的权限数也会增加。

系统规定用户使用数据库的权限。(系统权限是对用户而言)

对象权限

    • TABLEVIEW,Sequence 等为对象,在对象上的权限为对象权限,这个权限不是全局的.系统权限是全局的.
    • 每种对象的权限都不同
    • 对象宿主拥有在对象上全部的权限
    • 对象宿主能授予对象权限给其他用户
    • 对象权限指的是数据库之中某一个对象所拥有的权限,
    • 即:可以通过某一个用户的对象权限,让其他用户来操作本用户中的所有授权的对象。

    维护数据库中对象的能力,即:由一个用户操作另外一个用户的对象。

    对象权限指的是数据库之中某一个对象所拥有的权限

    即:可以通过某一个用户的对象权限,让其他用户来操作本用户中的所有授权的对象。

    Oracle之中一共定义了八种对象权限,分别是:SELECTINSERTUPDATEDELETEEXECUTEALTERINDEXREFERENCES

 

系统权限

系统权限分类:

DBA

拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构

RESOURCE

拥有Resource权限的用户只可以创建对象,不可以创建数据库结构

CONNECT

拥有Connect权限的用户只可以登录oracle,不可以创建对象,不可以创建数据库结构

对于普通用户

授予connect, resource权限。

对于DBA管理用户

授予connect,resource, dba权限

用的系统权限有:

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

创建视图

 

为用户授权

  • 系统权限只能由DBA用户授出:sys,system(最开始只能是这两个用户)
  • 普通用户通过授权可以具有与system相同的用户权限,但永远不能达到与sys用户相同的权限,system用户的权限也可以被回收。
  • 授权语法:

GRANT 权限 , …

TO [用户名 , … | 角色名 , …. | PUBLIC]

[WITH ADMIN OPTION] ;

  • 语法解释:

权限:

主要指的是各个系统权限

TO:

设置授予权限的用户、角色或者是使用PUBLIC将此权限设置为公共权限;

WITH ADMIN OPTION:

将用户授予的权限继续授予其他用户则得到的权限可以传递。

 

  • 范例

c##wendy用户授予CREATE SESSION权限,这样用户就可以登录了.

GRANT CREATE SESSION TO c##wendy ;

c##wendy用户授权;

12C以前的oracle版本在授权后需要重新登录,只有登录时会取权限。

12C是动态取得权限.

GRANT CREATE TABLE , CREATE SEQUENCE , CREATE VIEW TO c##wendy WITH ADMIN OPTION ;

利用c##wendy用户登录,而后将创建表、以及创建序列的权限授予c##gaga用户

GRANT CREATE TABLE , CREATE SEQUENCE TO c##gaga ;

 

撤消权限

  • 撤消权限语法:

REVOKE 权限 , ... FROM 用户名 ;

  • 范例

c##wendy用户的CREATE VIEWCREATE TABLE权限回收

REVOKE CREATE TABLE , CREATE VIEW FROM c##wendy;

通过c##wendy用户回收c##gaga用户的CREATE SEQUENCE权限

REVOKE CREATE SEQUENCE FROM c##gaga ;

说明:

1)如果使用WITH ADMIN OPTION为某个用户授予系统权限,那么对于被这个用户授予相同权限的所有用户来说,取消该用户的系统权限并不会级联取消这些用户的相同权限。

2)系统权限无级联,即A授予B权限,B授予C权限,如果A收回B的权限,C的权限不受影响;系统权限可以跨用户回收,即A可以直接收回C用户的权限。

 

对象权限

  • Oracle之中一共定义了八种对象权限,分别是:SELECTINSERTUPDATEDELETEEXECUTEALTERINDEXREFERENCES

 

对象权限

表(Table

序列(Sequence

视图(View

子程序(Procedure

查询(SELECT)

 

增加(INSERT)

 

 

更新(UPDATE)

 

 

删除(DELETE)

 

 

执行(EXECUTE)

 

 

 

修改(ALTER)

 

索引(INDEX)

 

 

关联(REFERENCES)

 

 

 

 

授予对象权限

  • GRANT 对象权限 | ALL [( , ...)]

ON 对象

TO [用户名 | 角色名 | PUBLIC]

[WITH GRANT OPTION] ;

语法组成:

对象权限

指的是表所列出的权限标记,如果设置为ALL表示所有对象权限;

ON

要授予权限的对象名称;

TO

将此权限授予的用户名称或角色名称,如果设置为PUBLIC表示为公共权限;

WITH GRANT OPTION:

允许授权用户继续授权其他用户。

  • 范例

c##wendy用户授予c##scottSQL Fundamentals || DCL(Data Control Language) || 系统权限&对象权限管理(GRANT&REVOKE)

SQL语言分类DQL,DML,DDL,DCL

SQL Fundamentals SQL列字段的处理 SQL(casedecode行转列)

SQL Fundamentals:Substitution Variables(替代变量)

SQL Fundamentals: 子查询 || 分析函数

MySQL 基础 SQL -- DCL 数据控制语言 DBA常用(用户管理:查询用户创建用户修改用户密码删除用户,权限控制:查询权限授予权限撤销权限)

(c)2006-2024 SYSTEM All Rights Reserved IT常识