Oracle442个应用场景-----------角色管理

--------------------------------角色管理------------------------------------

一、角色的概念和特性

     1.什么是角色?

        角色就是相关权限的命令集合,使用角色的主要目的就是为了简化权限的管理。

     2.角色的特性有哪些?
       a.使用grant和revoke赋予和回收系统权限
       b.角色可以赋予给任何除自身之外的角色和用户
       c.角色可以由系统和对象权限组成
       d.可以启用和禁用角色
       e.可以指定一个密码
       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 用户名1 [,用户名2]...;
[普通用户通过授权可以具有与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;

查询是否存在该用户:(注意,虽然上面创建用户是的用户名是小写的hrman但是在数据库中存入的用户名字为: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 <用户名>
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<用户名>
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<用户名>
eg:REVOKE SYSDBA FROM HRMAN;

应用场景44:为应用分配空间配额
为用户在指定的表空间中可以占用的空间大小。
ALTER USER<用户名>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;

 

你可能感兴趣的:(Oracle442个应用场景-----------角色管理)