Oracle 数据库的权限系统分为系统权限与对象权限。
系统权限( database system privilege )可以让用户执行特定的命令集。
例如,create table权限允许用户创建表,
grant any privilege 权限允许用户授予任何系统权限。
对象权限( database object privilege )可以让用户能够对各个对象进行某些操作。
例如delete权限允许用户删除表或视图的行,
select权限允许用户通过select从表、视图、序列(sequences)或快照(snapshots)中查询信息。
每个oracle用户都有一个名字和口令,并拥有一些由其创建的表、视图和其他资源。
oracle角色(role)就是一组权限(privilege)(或者是每个用户根据其状态和条件所需的访问类型)。
用户可以给角色授予或赋予指定的权限,然后将角色赋给相应的用户。如同将权限打包成角色授权给用户一个用户也可以直接给其他用户授权。
用户管理
用户:对数据库的访问,需要以适当用户身份通过验证,并具有相关权限来完成一系列动作。
模式(schema):是某个用户拥有所有对象的集合。具有创建对象权限并创建了对象的用户称为拥有某个模式。
注意:创建数据库对象(视图,表等)的任一用户都拥有一个以该用户名称开头的模式,且被视为模式用户。
oracle sys system 用户的区别:
sys用户,缺省始终创建,且未被锁定,拥有数据字典及其关联的所有对象 system用户,缺省始终创建,且未被锁定,可以访问数据库内的所有对象。
sys是oracle数据库中权限最高的帐号,具有create database的权限, 而system没有这个权限,sys的角色是sysdba,system的角色是sysoper。
其余就是他们两个用户共有的权限了: startup/shutdown/dba两个用户都是可以管理的。 平时用system来管理数据库就可以了,这个用户的权限对于普通的数据库管理来说已经足够权限了。
建立用户
语法[创建用户]: create user 用户名 identified by 口令[即密码] default tablespace 默认表空间;
create user test01 identified by itpux01 default tablespace test01 temporary tablespace temp;
修改用户密码
alter user test01 identified by test001;
锁用户或解锁用户
锁定
alter user test01 account lock
解锁
alter user test01 account unlock; --不可以修改用户名
更改用户的表空间限额:
不限制使用任何表空间的空间,全局表空间:
grant unlimited tablespace to test01;
针对 test01 表空间
alter user test01 quota unlimited on test01; --不限额 alter user test01 quota 10m on test01; --限额10M
回收使用空间权限
revoke unlimited tablespace from test01; alter user test01 quota 0 on test01;
--查看用户表空间配额
select * from dba_ts_quotas; --dba权限查看 select * from user_ts_quotas; --用户权限查看
删除用户
drop user test02;
casecade 同时删除用户所有对象和数据
drop user test01 cascade;
显示用户信息
select * from dba_users; select * from dba_ts_quotas;