管理用户安全性
数据库用户账户包括以下内容:
唯一的用户名,验证方法,默认表空,临时表空间,用户概要文件,使用者组,锁定状态。
预定义的账户:SYS和SYSTEM
查看当前用户
SQL> show user;
USER is "SYS"
创建一个用户,并且为该用户创建一个默认表空间
1.在dba_data_files视图中查看表空间的使用情况
SQL> select FILE_NAME from dba_data_files ;
FILE_NAME
-------------------------------------------------------
/u01/app/oracle/oradata/orcl/test2.dbf
/u01/app/oracle/oradata/orcl/example01.dbf
/u01/app/oracle/oradata/orcl/users01.dbf
/u01/app/oracle/oradata/orcl/sysaux01.dbf
/u01/app/oracle/oradata/orcl/undotbs01.dbf
/u01/app/oracle/oradata/orcl/system01.dbf
6 rows selected.
2.创建一个表空间,该表空间将作为将要创建的用户默认表空间
SQL> create tablespace skyworld datafile '/u01/app/oracle/oradata/orcl/skyworld.dbf' size 10m;
3.创建用户并且指定默认的临时表空间
SQL> create user skyworld identified by skyworld default tablespace skyworld;
4.为创建的用户在默认表空间上分配配额(若不分配配额,则新建的用户无法创建对象)
SQL> alter user skyworld quota unlimited on skyworld;
对创建的用户设置权限
1.给创建的角色赋予权限,我们可以赋予某个权限,也可以赋予角色权限
SQL> grant select any tables to skyworld; //赋予用户某个权限
SQL> grant dba to skyworld; //赋予用户dba角色的权限
2.去除用户的某个权限或者角色
SQL> revoke select any table from skyworld; //去除某个权限
SQL> revoke dba from skyworld; //去除用户的dba角色权限
修改用户设置
1.修改用户密码
SQL> alter user skyworld identified by oracle;
2.对用户进行解锁或者锁定
SQL> alter user skyworld account unlock; //对skyworld用户进行解锁
SQL> alter user skyworld account lock; //对skyworld用户进行锁定
用户信息查看
1.查看用户的详细信息
在dba_users视图中,我们可以查看到用户的详细信息,如用户名,用户密码,用户的状态,以及用户对应的表空间信息等
SQL> select * from dba_users where username='SKYWORLD';
2.查看用户中的表名
先在skyworld用户创建一张test表
SQL> create table skyworld.test (id int);
然后在all_tables视图中,我们可以查看到skyworld用户的所有的表。
SQL> select table_name from all_tables where owner='SKYWORLD';
TABLE_NAME
------------------------------
TEST
关于用户角色(role)
角色的本质上是权限的集合,角色可以用系统权限和对象权限构成。预定义角色有5种(connect,resource,scheduler_admin,dba,select_catalog_role)
1.创建角色
SQL> create role compt;
2.赋予角色某个权限,就像给某个用户赋予权限一样
SQL> grant select on scott.emp to compt;
3.把角色赋予某个用户,这时这个角色就相当于某个权限
SQL> grant compt to skyworld;
4.我们可以从某个角色中去除某个权限,我们也可以从某个用户中去除某个角色
SQL> revoke select on scott.emp from compt; //从角色中删除某个权限
SQL> revoke compt from skyworld; //从用户中删除某个角色
5.删除角色
SQL>drop role compt
关于profile
Oracle系统中的profile可以用来对用户所能使用的数据库资源进行限制,使用Create Profile命令创建一个Profile,用它来实现对数据库资源的限制使用,如果把该profile分配给用户,则该用户所能使用的数据库资源都在该profile的限制之内。
1.创建一个profle
SQL>create profile shanghai limit password_life_time 10 password_grace_time 2;
2.将配置文件分配给用户:
SQL> alter user skyworld profile shanghai;
关于profile的更多信息请参考http://www.cnblogs.com/jacktu/archive/2008/02/27/1083226.html
删除一个用户及其对应的表空间
1.删除用户及其所有对象
SQL> drop user skyworld cascade;
cascade参数是级联删除该用户所有对象。
2.删除用户表空间
SQL>drop tablespace skyworld including contents and datafiles cascade onstraints;
including contents 删除表空间的内容,如果删除表空间之前表空间中有内容,而未加此参数,表空间是删不掉的。
including datafiles 删除表空间中的数据文件。
cascade onstraints; 同时删除tablespace中表的外键参照