Oracle DCL(Data Control Language)数据控制语言(权限privilege,角色role,用户user介绍)

1、如何控制用户访问

1、身份验证,认证:Authentication

2、授权:Authorization

3、审计:Audit

2、权限

  • 数据库安全:
    • -系统安全
    • -数据安全
  • 系统权限:数据库中执行一个特定操作
  • 对象权限:操纵数据库的对象的内容
  • 可用的系统权限有100多个
  • 数据库管理员有高层次的系统权限,可以完成
    • -创建一个新用户
    • -删除用户
    • -删除表
    • -备份表

3、创建用户

DBA使用CREATE USER语句创建用户

CREATE USER user identified BY password;


SQL> create user wendy identified by wendy;

User created.

4、用户被创建后,DBA可以对用户授予特殊的系统权限.

一个应用程序开发者,可能有如下系统权限:

  • CREATE SESSION
  • CREATE TABLE
  • CREATE SEQUENCE
  • CREATE VIEW
  • CREATE PROCEDURE

用户被创建后,DBA可以对那个用户授予特殊的系统权限.

GRANT privilege [, privilege…]

To user [, user| role, PUBLIC…];

授予系统权限

DBA能授予某系统权限给用户


SQL> GRANT create session,create table,create sequence,create view to wendy;

Grant succeeded.

5、什么是角色Role?

  • 数据库系统是role-base基于角色的系统.
    • 角色是权限的集合.
  • 操作系统中是基于组的系统,操作系统是用户组group.
    • 组是用户的集合.
  • 可以将权限赋予一个用户,也可以将角色赋予一个用户.
  • 创建一个角色;

CREATE ROLE manager;

  • 赋予给角色一个权限;

GRANT create table, create view To manager;

  • 赋予一个角色给用户;

GRANT manager To wendy, gaga;


SQL> create role manager;

Role created.

SQL> grant create table,create view to manager;

Grant succeeded.

SQL> grant manager to wendy;

Grant succeeded.

6、修改你的密码

DBA创建你的用户帐号和初始化你的密码

你能使用ALTER USER语句改变密码


ALTER USER wendy

IDENTIFIED BY wendypassword;

7、什么是对象,什么是对象权限?

TABLE,VIEW,Sequence 等为对象,在对象上的权限为对象权限,这个权限不是全局的.系统权限是全局的.

每种对象的权限都不同

对象宿主拥有在对象上全部的权限

对象宿主能授予对象权限给其他用户.


GRANT    object_priv[(columns)]

ON           object

TO            {user|role|PUBLIC}

[WITH GRANT OPTION];

赋予对象权限

在t表中赋予查询特权:

GRANT select

ON         t

TO         wendy;

赋予更新某列的特权给用户和角色:

GRANT update(id,name)

ON           t

TO           wendy,manager;


SQL> grant select

2 on t

3 to wendy;

Grant succeeded.

SQL> grant update(id,name)

2 on t

3 to wendy,manager;

Grant succeeded.

8、传递特权

授予用户给其他用户权限的权限:

GRANT select,insert

ON         t

TO         wendy

WITH     GRANT OPTION;


SQL> grant select,insert

2 on t

3 to wendy

4 with grant option;

Grant succeeded.

允许系统上的所有用户从wendy的t表中查询数据:

GRANT select

ON         wendy.t

TO          PUBLIC;


SQL> grant select

2 on wendy.t

3 to public;

Grant succeeded.

------------注意:wendy.t是指wendy用户下的t表,所以一定要保证这个用户下有这张表

9、检查赋予的特权


数据字典视图


描述


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


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

10、撤销对象权限

使用revoke语句来撤销曾赋予给用户的权限

通过WITH GRANT OPTION子句被传递给其他用户的权限也被撤销

Revoke{privilege [, privilege…]| ALL}

ON           object

FROM       {user[,user…] | role| PUBLIC}

[CASCADE constraints];

CASCADE表示把他下面依赖的权限都撤销.

在wendy的表中,撤销SELECT和INSERT权限

REVOKE   select,insert

ON            t

FROM      wendy;

11、总结


语句


解释


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

时间: 2024-10-11 01:32:44

Oracle DCL(Data Control Language)数据控制语言(权限privilege,角色role,用户user介绍)的相关文章

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

SQL Fundamentals || Oracle SQL语言 语句 解释 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 use

SQL Fundamentals || DCL(Data Control Language) || 用户管理&Profile概要文件

SQL Fundamentals || Oracle SQL语言 语句 解释 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 use

SQL Fundamentals || DCL(Data Control Language) || 角色ROLES

SQL Fundamentals || Oracle SQL语言 语句 解释 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 use

DDL(Data Definition Language)数据定义语言基础

数据定义语言DDL(Data Definition Language)是SQL语言的三个主要组成部分之一(另外两个分别是数据操作语言DML(Data Mainpulation Language)和数据控制语言(Data Control Language)). 1:创建用户Create User 创建用户使用如下的语法 Create user 用户名 identified by 密码 [default tablespace 缺省表空间] [temporary tablespace 临时表空间].如

Mysql DCL (Date Control Language)

Mysql DCL (Date Control Language) 数据库:mysql> select * from fen; +-------+-------+---------+ | name | china | english | +-------+-------+---------+ | ming | 69 | 99 | | hong | 48 | 33 | | qiang | 77 | 33 | +-------+-------+---------+ 3 rows in set (0.

DQL(Data Query Language)数据查询语言

数据库的好处 可持久化数据到本地 实现结构化查询 数据库的常见概念 DB(DATABASE):数据库 DBMS(DATABASE Management stytem):数据库管理系统 SQL:结构化查询语言,用于和数据库通信的语言,不是某个数据库特有的,而是几乎所有主流数据库软件通用的语言 数据库存储数据的特点 数据存放在表中,然后表再放在库中 一个库中可以存着多张表 表中有一个或者多个列,列又称为"字段" MYSQL 的优点 开源,免费,成本低 性能高,移植性好 体积小,便于安装 M

Oracle学习(八):处理数据

1.知识点:能够对比以下的录屏进行阅读 SQL> --SQL语句 SQL> --1. DML语句(Data Manipulation Language 数据操作语言): insert update delete select SQL> --2. DDL语句(Data Definition Language 数据定义语言): create/alter/drop/truncate table SQL> -- create/drop view,create/drop index(sequ

ddl(数据定义语言) ,dml (数据操控语言),dcl(数据控制语言)

DDL.DML和DCL的理解 1.DDL 1-1.DDL的概述 DDL(Data Definition Language 数据定义语言)用于操作对象和对象的属性,这种对象包括数据库本身,以及数据库对象,像:表.视图等等,DDL对这些对象和属性的管理和定义具体表现在Create.Drop和Alter上.特别注意:DDL操作的"对象"的概念,"对象"包括对象及对象的属性,而且对象最小也比记录大个层次.以表举例:Create创建数据表,Alter可以更改该表的字段,Dro

MySql DCL数据控制语言(对用户权限的设置)

数据控制语言(DCL:Data Control Language)是用来设置或者更改数据库用户或角色权限的语句,这些语句包括 GRANT.DENY.REVOKE 等语句 1.限制root用户指定ip登录 查看root用户可以在哪台机器登录 select user,host from mysql.user where user='root'; 修改mysql库里边的user表 update mysql.user set host='localhost' where user='root'; 刷新权