【Oracle】Oracle数据库权限操作

《oracle》 韩顺平
B站上关于韩老师讲解oracle大全集

主流数据库
sql server / access
mysql
db2/sybase/oracle

oracle精华部分:对用户的管理,对角色的管理
oracle权限:
系统权限:用户对数据库的权限
对象权限:用户对其他用户的数据对象(函数,过程、表、视图……)访问的权限


角色:权限的集合

最重要的三个权限connect ,dba,resourse
自定义角色
预定义角色

对权限的维护
--如果对象权限
参数:with grant option表示权限可以继续传递
--如果是系统权限
with admin option

若授权的人直接收回直接者的权限和其他人的权限


oracle用户的管理
使用profile管理用户口令
创建profile文件
create profile [lock_account] limit
failed_login_attemps 3 password_lock_tim 2;
(2)解锁
alter user xxx account unlock;

(3)终止口令
create profile [myprofile] limit passwor_life_time


desc 表名 :查看用户表结构

这是做数据库实验时一些相关的grant,revoke授权联系
二、定义用户,用SQL的GRANT和REVOKE语句完成以下授权定义或存取控制功能。
1、创建数据库本地用户test,密码为oracle,默认表空间为users,临时表空间为temp,同时具有create session系统权限。

    --创建角色
    CREATE USER test
    IDENTIFIED BY oracle
    DEFAULT TABLESPACE users
    TEMPORARY TABLESPACE temp;

    GRANT CREATE SESSION TO test;

2、用户王明对两个表有SELECT权力;

drop user 王明;
CREATE USER 王明
IDENTIFIED BY oracle
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE temp;

GRANT CREATE SESSION TO 王明;

GRANT SELECT ON hr.D to 王明;
GRANT SELECT ON hr.Z to 王明;

REVOKE SELECT ON hr.D from 王明;
REVOKE SELECT ON hr.Z from 王明;

3、用户李勇对两个表有INSERT和DELETE权力;

CREATE USER 李勇
IDENTIFIED BY oracle
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;

GRANT CREATE SESSION TO 李勇;

GRANT INSERT, DELETE ON hr.D TO 李勇;
GRANT INSERT, DELETE ON hr.Z TO 李勇;

REVOKE SELECT, DELETE ON hr.D from 李勇;
REVOKE SELECT, DELETE ON hr.Z from 李勇;

4、用户刘星对职工表有SELECT权力,对工资字段具有更新权力;

CREATE USER 刘星
IDENTIFIED BY oracle
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;

GRANT CREATE SESSION TO 刘星;

GRANT SELECT,UPDATE(zbalance) ON hr.Z TO 刘星;

5、用户周平具有对两个表所有权力(读、插、改、删数据),并具有给其他用户授权的权力;
提示:所有权力为ALL PRIVILEGE,在GRANT语句中使用WITH GRANT OPTION选项,被授权的用户就具有了再次将对象权限授予其他用户的能力。

CREATE USER 周平
IDENTIFIED BY oracle
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;

GRANT CREATE SESSION TO 周平;
--对特定表的所有权限赋给周平  并给与赋给比别人权限
grant all privileges on hr.d to 周平 with grant option;
grant all privileges on hr.z to 周平 with grant option;

6、用户杨兰具有从每个部门职工中SELECT最高工资,最低工资,平均工资的权力,他不能查看每个人的工资。
提示:首先创建视图查询每个部门职工中的最高工资,最低工资和平均工资,然后授予用户查询视图的权限。

CREATE USER 杨兰
IDENTIFIED BY oracle
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;

grant create session to 杨兰;

grant select on hr.v to 杨兰;


三、设计安全机制使得用户“liming”只能查询年龄在40岁以上(包括)职工。
提示:用视图实现

CREATE USER liming
IDENTIFIED BY oracle
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;

grant create session to liming;

grant select on hr.l to liming;

四、设计安全机制使得用户“liming”只能访问“职工”的职工号、姓名。
提示:用视图实现

grant select on hr.a to liming;

五、设计角色“student”,可以查看“职工”的职工号、姓名、年龄。将用户“liming”添加到角色“student”中。
提示:用视图实现

create role student;

grant select on hr.b to student;

grant student to liming;

猜你喜欢

转载自blog.csdn.net/Alearn_/article/details/80382882