SQL 基础之用户角色日常操作(十六)

在数据库管理中一定本着一个原则就是权限最小化的原则,如果有需要在赋予相应的权限

数据库管理员日常对于用户的管理任务如下:

– 创建新用户

– 删除用户

– 删除表

– 备份表


1、创建用户yuri,并设置密码为password。

create user  yuri identified by password;


2、用户创建之后, DBA 会赋予用户一些系统权限

以应用程序开发者为例, 一般具有下列系统权限:

- create session

-create table

-create sequence

-create view

-create procedure


例如:赋予用于yuri如下权限

grant create session, create table, create sequence, create view to yuri;


二、角色的作用

角色的目的是定义了一个有哪些权限的角色,并把用户指定为这个角色。方便统一管理


1、创建角色

create role mang;


2、赋予角色权限

grant create table, create view to mang;


3、将角色授予用户

grant mang to yuri


DBA 可以创建用户和修改密码。

用户自己可以使用 ALTER USER 语句修改密码。

4、将yuri用户的密码改为1q2w3e

alter user yuri identified by 1q2w3e;


对象权限

对象权限 Table View Sequence
ALTER SQL 基础之用户角色日常操作(十六)
SQL 基础之用户角色日常操作(十六)
DELETE SQL 基础之用户角色日常操作(十六) SQL 基础之用户角色日常操作(十六)
INDEX SQL 基础之用户角色日常操作(十六)

INSERT SQL 基础之用户角色日常操作(十六) SQL 基础之用户角色日常操作(十六)
REFERENCES SQL 基础之用户角色日常操作(十六)

SELECT SQL 基础之用户角色日常操作(十六) SQL 基础之用户角色日常操作(十六) SQL 基础之用户角色日常操作(十六)
UPDATE SQL 基础之用户角色日常操作(十六) SQL 基础之用户角色日常操作(十六)
  • 不同的对象具有不同的对象权限

  • 对象的拥有者拥有所有权限

  • 对象的拥有者可以向外分配权限


语法:

grant object_priv [(columns)] on object to {user|role|public} [with grant option];


1、赋予查询employees表的权限给yuri用户

 grant select on employees to yuri;


授予指定的列给yuri用户和mang角色,更新department_name和location_id的权限

grant update (department_name, location_id) on departments to yuri, mang;


WITH GRANT OPTION 和 和 PUBLIC  关键字


WITH GRANT OPTION 使用户同样具有分配权限的权利

 grant select, insert on departments to demo with grant option;


向数据库中所有用户分配权限

 grant select on alice.departments to public;


确认授予的权限

数据字典视图 描述
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 用户拥有的关于列的对象权限


 撤销对象权限

  •  使用 REVOKE 语句撤销权限

  •  使用 WITH GRANT OPTION 子句所分配的权限同样被收回

语法:

revoke {privilege [, privilege...]|all} on object from {user[, user...]|role|public} [cascade constraints];


1、撤销授予给 yuri 用户 employees 表的 SELECT 和 INSERT 权限。

revoke select ,instert  on employees from yuri;