《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;