oracle用户管理

Oracle 9i默认的主要用户

用户名

口令

登录身份及说明

sys

change_on_install

SYSDBA或SYSOPER,但不能以NORMAL登录,可作为默认的系统管理员

system

manager

SYSDBA或NORMAL,但不能以SYSOPER登录,可作为默认的系统管理员

scott

tiger

NORMAL,普通用户

aqadm

aqadm

SYSDBA或NORMAL,高级队列管理员。

Dbsnmp

dbsnmp

SYSDBA或NORMAL,复制管理员。

  • 建立用户时应考虑的问题
    1. 选择用户名和验证机制
    2. 定义用于保存对象的表空间
    3. 决定每个表空间的限额
    4. 分配临时表空间和缺省表空间
    5. 给用户授予特权和角色
  • 创建用户的步骤
    1. 用create user 命令建立用户
    2. 给用户指定缺省表空间和临时表空间
    3. 给用户指定空间的使用限额,至少要使用用户在system表空间的限额为0
    4. 给用户授权适当的访问权限

CREATE USER 用户名 IDENTIFIED BY 口令

             [DEFAULT  TABLESPACE 表空间名]

             [TEMPORARY  TABLESPACE 表空间名]

             [QUOTA 整数K/M ON 表空间名

或者 UNLIMITED]

-- 以system用户登录后,创建用户

-- CONNECT SYSTEM/MANAGER

CREATE USER ciqfgdc IDENTIFIED BY ciqfgdcpwd

DEFAULT TABLESPACE ciqfgdc QUOTA UNLIMITED ON ciqfgdc ;

--授权

GRANT DBA,CONNECT,RESOURCE TO ciqfgdc;

GRANT create session,create table,create view to ciqfgdc;

 ―――――――――――――――――――――――――――――――――――――
   /*【一般信息】选项卡的配置*/
   CREATE USER "TEMPUSER" PROFILE "DEFAULT"
     IDENTIFIED BY "tempuser" DEFAULT TABLESPACE "USERS"
     ACCOUNT UNLOCK;
   /*【系统权限】选项卡的配置*/
   GRANT CREATE ANY TABLE TO "TEMPUSER" WITH ADMIN OPTION;
   /*【对象权限】选项卡的配置*/
   GRANT "CONNECT" TO "TEMPUSER" WITH ADMIN OPTION;
 ―――――――――――――――――――――――――――――――――――――

  • 给用户授权
    1. 给一个数据库中已经存在的用户授权
      1. GRANT 权限列表(权限1,权限2...) TO 用户名;
    2. 给用户授权的同时创建该用户
      1. GRANT 权限列表(权限1,权限2...)TO 用户名 IDENTIFIED BY 用户口令;
    3. 将某个对象的某些权限授予某个用户
      1. GRANT 权限列表(权限1,权限2...)ON 对象 TO  用户名;
    4. 将某个对象的某些权限授予所有
      1. GRANT 权限列表(权限1,权限2...)ON 对象 TO  PUBLIC;
    5. 将某个对象的某些权限授予某个角色
      1. GRANT 权限列表(权限1,权限2...)ON 对象 TO 角色名;

注意:

       特殊用户--- PUBLIC: 系统中的所有用户

       所有权限---ALL: 当前用户的所有权限

       例子:

create user tmp identified by tmp
default tablespace users
temporary tablespace temp
quota OM on system;
grant connect,resource to tmp;
  • 修改用户

ALTER  USER 用户名 IDENTIFIED BY 口令

             [DEFAULT  TABLESPACE 表空间名]

             [TEMPORARY  TABLESPACE 表空间名]

             [QUOTA 整数K/M ON 表空间名

或者 UNLIMITED]

例1: 修改用户口令

     ALTER  USER  scott  IDENTIFIED   BY   lion;

例2: 修改用户口令

     ALTER  USER  scott  IDENTIFIED   BY   lion

             DEFAULT  TABLESPACE  tstest;

例3: 修改用户口令

     ALTER  USER  scott  QUOTA  OM  on SYSTEM;

 

  • 删除用户
    1. DROP USER peter;
    2. DROP USER peter CASCADE( 如果模式中含对象使用CASCADE子句)
  • 权限管理
    1. 系统特权: 完成特殊活动或在一个特殊类型的对象上完成特殊活动的一个特权.
    2. 对象特权: 在一个指定的对象(表、视图、序列、过程、函数或包)上完成一个特殊活动的特权。
    3. 改变用户权限
      1. 授权给用户(Grant)
      2. 从用户那里收回权限(Revoke)
      3. Revoke  role_name or priv_name from username;
      4. 撤消用户的角色dba时,同时撤消了用户unlimited tablespace的系统权限
      5. Grant resource to username;
    4. 改变用户权限
  • 使用权限时的觉问题
    1. 执行存储过程时出现ORA-1031
      1. 不能通过角色授权,必须显示授权
    2. 通过数据库链插入远程表时出现ORA-01031,ORA-02063
      1. 插入远程表之前先做SELECT必须有SELECT权限
  • 列出用户的系统权限
select distinct privilege from dba_sys_privs
where grantee in (select granted_role from dba_role_privs
where grantee='SCOTT')
union
select distinct privilege from dba_sys_privs
where grantee='SCOTT'
  • 列出授予用户的角色
select username,
default_tablespace dts,
temporary_tablespace tts,
profile prof,
granted_role || '-' ||
decode(admin_option,'YES','A','') ||
decode(granted_role,'YES','G','') role
from
dba_users,
dba_role_privs
where
dba_users.username = dba_role_privs.granted_role and
username not in('PUBLIC')
order by
1,2,3,4;

 ―――――――――――――――――――――――――――――――――――――
    /*【使用者组】选项卡的配置,授予切换资源使用者组的权限*/
    BEGIN
     dbms_resource_manager_privs.grant_switch_consumer_group(
       grantee_name => 'TEMPUSER',
       consumer_group => 'DEFAULT_CONSUMER_GROUP',
       grant_option => TRUE
     );
    END;
―――――――――――――――――――――――――――――――――――――

你可能感兴趣的:(数据库,oracle,用户管理)