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

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

– 创建新用户

– 删除用户

– 删除表

– 备份表


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;


对象权限

对象权限TableViewSequence
ALTERi_f48.gif
i_f48.gif
DELETEi_f48.gifi_f48.gif
INDEXi_f48.gif

INSERTi_f48.gifi_f48.gif
REFERENCESi_f48.gif

SELECTi_f48.gifi_f48.gifi_f48.gif
UPDATEi_f48.gifi_f48.gif
  • 不同的对象具有不同的对象权限

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

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


语法:

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;