权限
执行特定命令或访问数据库对象的权利
Oracle的用户权限分两种:
1.系统权限:针对系统安全性,执行数据库操作,如登录,创建表表空间。
2.对象权限:针对数据安全性,对某一特定对象(如表,视图等)执行的特定操作。如分配表的SELECT,UPDATE权限。
角色
一组相关权限的组合,可以将权限授予角色,再把角色授予用户,以简化权限管理。
授权语法
GRANT 系统权限名 TO 用户名|角色名|PUBLIC
可以一次性为多用户授权,多个用户有逗号隔开
常用系统权限
create session:连接到数据库
create an procedure:能创建,修改,删除或执行任何存储过程,程序包和函数
create any table:能在自己的模式中创建,修改,删除或查询任何表
create table, create view, create type:开发人员需要的权限
撤销系统权限语法
REVOKE 系统权限名 FROM 用户名/角色/PUBLIC;
授予对象权限语法
GRANT 对象权限名 ON 对象名 TO 用户名|角色|PUBLIC
常用的权限:
对象权限 使用对象 允许操作
SELECT 表,视图,序列 查询
UPDATE 表,视图或其中的字段 更新操作
DELETE 表和视图 删除行
INSERT 表,视图或其中的字段 插入行
EXECUTE 存储过程,存储行数与程序包 执行PL/SQL,存储对象
INDEX 表 在表上建立索引
REFERENCES 表或其中的字段 在其他表中创建的外部键能饮用表或表中的字段
ALTER 表或序列 修改表或序列的结构
利用角色进行权限管理
角色是系统权限和对象权限的一个集合,可以将角色授予用户,被授予角色的用户会自动拥有角色所具有的权限。
如果修改了角色所拥有的权限,则被授予角色的用户的权限也会随之自动修改。
预定义角色
在数据库安装后,系统自动创建的一些常用的角色。
CONNECT角色:
主要应用在临时用户,特别是那些不需要建表的用户。
CONNECT是使用Oracle的简单权限,拥有CONNECT角色的用户,可以与服务器建立连接会话。
RESOURCE角色:
应用于更可靠和正式的数据库用户。
RESOURCE角色提供给用户另外的权限以创建他们自己的表、序列、过程、出发器、索引。
DBA角色:
DBA角色拥有所有的系统权限,包括无限制的空间限额和给其他用户授予各种权限的能力。用户SYSTEM拥有DBA角色。
EXP_FULL_DATABASE角色:
主要用于数据库的逻辑备份工具export
IMP_FULL_DATABASE角色:
主要用于数据库的逻辑备份工具import
角色授予语法
GRANT 角色名 TO 用户名;
查看用户信息
SELECT FROM DBA_USERS;
SELECT FROM ALL_USERS;
SELECT * FROM USER_USERS;
查看所有角色信息
SELECT * FRIM dba_roles;
自定义角色
CREATE ROLE 角色名;
给角色授权
GRANT 权限 TO 角色名;
使用角色授权
GRANT 角色名 TO 用户名;
数据库默认的概要文件
口令管理
账户锁定
FAILED_LOGIN_ATTEMPTS 锁定账户前登录失败的次数
PASSWORD_LOCK_TIME 达到制定的登录失败次数后,锁定的天数
终止口令
PASSWORD_LIFE_TIME 口令的有效时间,天为单位,超过后必须重新设置口令
PASSWORD_GRACE_TIME 口令失效后从第一次唱功登录算起的更改口令的宽限期
口令历史
PASSWORD_REUSE_TIME 一个失效口令要经过多少天,用户才可以重新使用该口令
PASSWORD_REUSE_MAX 可以重新使用口令的最多次数
口令检验
PASSWORD_VERIFY_FUNCTION PL/SQL函数,可在分配口令前检查口令复杂性
资源限制
限制会话资源
CUP_PER_SESSION 每个会话可占用CPU时间达到限制之后,用户就不能在会话中执行任何操作了,必须重新建立连接。
SESSIONS_PER_USER 每个用户的最大并发数
CONNECT_TIME 会话的最大连接时间
IDLE_TIME 会话的最大空闲时间
LOGICAL_READS_PER_SESSION