--------------------------------角色管理------------------------------------
一、角色的概念和特性
1.什么是角色?
角色就是相关权限的命令集合。使用角色的主要目的就是为了简化权限的管理。
2.角色的特性有哪些?
a.使用grant和revoke赋予和回收系统权限
b.角色能够赋予给不论什么除自身之外的角色和用户
c.角色能够由系统和对象权限组成
d.能够启用和禁用角色
e.能够指定一个password
f.角色不被不论什么用户拥有,不在不论什么方案内
g.角色在数据字典中有各自的描写叙述
二、提前定义角色
提前定义角色是指Oracle所提供的角色,每种角色都用于运行一些特定的管理任务,以下我们介绍经常使用的提前定义角色connect,resource,dba。
1、connect角色
connect角色具有一般应用开发者须要的大部分权限。当建立了一个用户后,多数情况下,仅仅要给用户授予connect和resource角色就够了。
那么connect角色具有下面系统权限:
alter session
create cluster
create database link
create session
create view
create sequence
2、resource角色
resource角色具有应用开发者所须要的其它权限,比方建立存储过程、触发器等。这里须要注意的是resource角色隐含了unlimited tablespace系统权限。
resource角色包括下面系统权限:
create cluster
create indextype
create table
create sequence
create type
create procedure
create trigger
3、dba角色
dba角色具有全部的系统权限。及with admin option选项,默认的dba用户为sys和system他们能够将不论什么系统权限授予其它用户。
可是要注意的是dba角色不具备sysdba和sysoper的特权(启动和关闭数据库)。
Oracle 权限设置
一、权限分类:
系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。
实体权限:某种权限用户对其他用户的表或视图的存取权限。(是针对表或视图而言的)。
二、系统权限管理:
1、系统权限分类:
DBA: 拥有所有特权,是系统最高权限,仅仅有DBA才干够创建数据库结构。
RESOURCE:拥有Resource权限的用户仅仅能够创建实体,不能够创建数据库结构。
CONNECT:拥有Connect权限的用户仅仅能够登录Oracle。不能够创建实体,不能够创建数据库结构。
对于普通用户:授予connect, resource权限。
对于DBA管理用户:授予connect,resource, dba权限。
2、系统权限授权命令:
[系统权限仅仅能由DBA用户授出:sys, system(最開始仅仅能是这两个用户)]
授权命令:SQL> grant connect, resource, dba to username1 [,username2]...;
[普通用户通过授权能够具有与system同样的用户权限。但永远不能达到与sys用户同样的权限。system用户的权限也能够被回收。]
-------------------------------------------------------------------------------
应用场景36:在Enterprise Manager中查看用户信息
应用场景37:使用DBA_USERS视图查看用户信息
SELECT USERNAME,PASSWORD,LOCK_DATE,EXPIRY_DATE,PROFILE,ACCOUNT_STATUS,CREATED FROM DBA_USERS;
应用场景38:在Enterprise Manager中创建用户
应用场景39:
创建新用户:
create user hrman identified by haixu default tablespace users temporary tablespace temp;
查询是否存在该用户:(注意。尽管上面创建用户是的username是小写的hrman可是在数据库中存入的username字为:HRMAN)
select username account_status created from dba_users where username='HRMAN';
应用场景40:在Enterprise Manager中改动用户属性
应用场景41:使用ALTER USER 语句改动用户信息
1、改动用户口令:
ALTER USER<USERNAME> IDENTIFIED BY< NEW PASSWORD>
EG:ALTER USER USERMAN IDENTIFIED BY NEWPASSWROD;
2.设置口令过期:
ALTER USER USERMAN PASSWROD EXPIRE;
3.锁定用户:
ALTER USER USERMAN ACCOUNT LOCK;
4.解锁用户
ALTER USER USERMAN ACCOUNT UNLOCK;
应用场景42:在Enterprise Manager管理用户权限
应用场景43:使用SQL语句管理用户权限
1.GRANT<心痛权限> TO <username>
EG:GRANT SYSDBA TO HRMAN;
GRANT CREATE SESSION TO HRMAN;
GRANT CREATE TABLE TO HRMAN;
GRANT CREATE SEQUENCE TO HRMAN;
授予创建用户、改动、删除用户权限
GRANT CREATE USER,ALTER USER,DROP USER, TO HRMAN;
2.授予数据对象权限
GRANT < 数据对象权限>ON<数据对象>TO<username>
EG:GRANT SELECT ON HRMAN USERS TO DEPARTMENT;
GRANT INSERT ON HRMAN USERS TO DEPARTMENT;
GRANT UPDATE ON HRMAN USERS TO DEPARTMENT;
GRANT DELETE ON HRMAN USERS TO DEPARTMENT;
3.撤销用户权限
REVOKE <权限或角色>FROM<username>
eg:REVOKE SYSDBA FROM HRMAN;
应用场景44:为应用分配空间配额
为用户在指定的表空间中能够占用的空间大小。
ALTER USER<username>QUOTA<空间配额的大小>ON<表空间>
eg:ALTER USER HRMAN QUOTA 100M ON USERS;
应用场景45:删除用户
DROP USER HRMAN;
应用场景46:查看用户回话信息
COL USERNAME FORMAT A10
COL USER# FORMAT A10
COL TYPE FORMAT A10
COL LOGON_TIME A20
COL PROCESS FORMAT A10
COL PROGRAM FORMAT A20
SELECT USERNAME,USER#,TYPE,LOGON_TIME,PROCESS,PROGRAM,STATUS FROM V$SESSION;
应用场景47:查看用户权限信息
COL GRANTEE FROMAT A15
COL TABLE_NAME FORMAT A15
COL PRIVIEGE FORMAT A15
COL PRIVILEGE FORMAT A15
SELECT GRANTEE,TABLE_NAME,PRIVILEGE GRANTOR FROM DBA_TAB_PRIVS WHERE ROWNUM<=10;
应用场景48:使用口令文件
ORAPWD FILE = filename PASSWORD = password ENTRIES = max_users force = <y/n>
视图V$PWFILE_USERS中存放了口令文件的信息,
SELECT * FROM V$PWFILE_USERS;
应用场景49:忘记DBA口令的解决方法
以SYSDBA身份连接到SQLPlus:
sqlplus "/as sysdba"
改动sys的用户口令为newpassword:
ALTER USER SYS IDENTIFIED BY NEWPASSWROD;
COMMIT;
最后測试连接:
CONN SYS /AS SYSDBA
输入口令:
newpassword
应用场景50:查看角色的信息
SELECT * FROM DBA_ROLES;CONN
应用场景51:在Enterprise Manager中创建角色
应用场景52:使用CREATE ROLE语句创建角色
CREATE ROLE<角色名>IDENTIFIED BY <验证口令>
eg: CREATE ROLE MYROLE1 IDENTIFIED BY MYROLEPWD;
应用场景53:对角色授权
应用场景54:指定用户的角色
GRANT <ROLE>TO <USERNAME>
EG:GRANT CONNECT TO HRMAN;
使用REVOKE取消用户角色:
REVOKE <ROLES> FROM<USERNAME>
EG:REVOKE CONNECT FROM HRMAN;
应用场景55:改动角色属性
取消角色的口令验证.丢弃角色
ALTER ROLE MYROLE1 NOT IDENTIFIED;
应用场景56:删除角色
DROP ROLE MYROLE1;
应用场景57:查看用户的角色信息
SELECT * FROM DBA_ROLE_PRIVS;