wcdz 发表于 2018-10-20 12:04:24

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

  在数据库管理中一定本着一个原则就是权限最小化的原则,如果有需要在赋予相应的权限
  数据库管理员日常对于用户的管理任务如下:
  – 创建新用户
  – 删除用户
  – 删除表
  – 备份表
  1、创建用户yuri,并设置密码为password。
  create useryuri 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 可以创建用户和修改密码。
  用户自己可以使用>  4、将yuri用户的密码改为1q2w3e
  alter user yuri>  对象权限
对象权限TableViewSequenceALTER
DELETE
INDEX
INSERTREFERENCESSELECTUPDATE

[*]  不同的对象具有不同的对象权限
[*]  对象的拥有者拥有所有权限
[*]  对象的拥有者可以向外分配权限
  语法:
  grant object_priv [(columns)] on object to {user|role|public} ;
  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} ;
  1、撤销授予给 yuri 用户 employees 表的 SELECT 和 INSERT 权限。
  revoke select ,insterton employees from yuri;

页: [1]
查看完整版本: SQL 基础之用户角色日常操作(十六)