Oracle--用户管理与权限分配

2014-11-24 17:40:46 · 作者: · 浏览: 1

用户登录 (跳开用户名和密码登录) :


sqlplus /nolog


connect / as sysdba


一.用户


1. 创建用户(例子)


create user olay identified by 123;


2. 删除用户(连同用户所拥有的对象一起删除)


drop user olay cascade;


3 .修改用户密码(口令)


alter user olay identified by 123456;


4. 解锁被锁的用户


alter user olay account unlock;


二:表空间


1 .创建表空间(创建一个用户为olay,口令为123,并设置默认表空间为users,临时表空间为temp)


create user olay identified by 123 default tablespace users temporary tablespac e temp;


如果该用户在users表空间上最多可使用大小为10MB,则


create user olay identified by 123 default tablespace users temporary tablespace temp


quota 10m on users;


如果该用户使用users表空间不受大小控制,则


create user olay identified by 123 default tablespace users temporary tablespace temp


quota unlimited on users;


注:如果要禁用用户使用某个表空间,则通过quota 设置限额为0即可


2. 删除表空间(XXX为表空间名)


drop tablespace XXX including contents and datafiles;


温馨提示:


在创建完用户之后,需要注意一下几点:


1. 如果创建用户时不指定默认表空间,oracle会将System 表空间作为用户默认表空间


2. 如果创建用户时不指定临时表空间,oracle会将默认表空间作为用户的临时表空间


3. 初始建立用户时没有任何权限的,必须授权后才可操作


4. 如果建立用户没有为设置用户在表空间的使用大小,那么用户在该表空间的配额为0


三:用户权限管理


oracle数据库中将权限分为两大类:系统权限和对象权限


以下分别介绍着两种权限


1 系统权限


(1)系统权限是指执行特定类型sql命令的权利。它用于控制用户可以执行的一个或是一组数据库操作


oracle提供了160多种系统权限,常用有:


create session 连接数据库 create table 建表 create view 建视图 create public synonym 建同义词


create procedure 建过程 函数 包 create trigger 建触发器 create cluster 建簇


更多的可以查数据字典(system_privilege_map)


select * from system_privilege_map order by name;


(2)授权


如果数据库管理员用grant 命令给用户A授予系统权限时带有with admin option,则该用户A就有权限将系统授予的权限授予给用户B。在这种情况下,


如果管理员使用revoke命令撤销A用户的系统权限,则用户B的系统权限仍然有效(这点有区别与对象权限)


案例:创建两个用户ken,tom。system给用户ken授予(create session 和 create table)两个权限 并且授予时带 with admin option


grant create session, create table to ken with admin option;


此时ken就可以把它得到的两个权限继续向别的用户转发。这样就可以登陆ken用户给tom授权了


回收系统权限


revoke create session, create table from ken;


2. 对象权限


指访问其它方案对象的权利,用户可以直接访问自己方案的对象,但是如果要访问别的方案的对象,就必须具有访问该对象的权限


常用的对象权限有:


alter delete select insert update index(索引) references(引用) execute(执行)


更多可以查看oracle提供的所有对象权限


select distinct privilege from aba_tab_privs;


比如smith用户要访问scott.emp表(scott:方案 ,emp:表) ,则必须在scott.emp表上具有对象的权限。


grant select , insert , delete on scott.emp to smith;


回收对象权限


revoke select , insert , delete on scott.emp from smith;


温馨提示:


如果数据库管理员用revoke命令回收A用户的对象权限,用户B的对象权限也被回收。


参考阅读:


推荐阅读: