SkyWorld

Just do what you want
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

oracle 10g 管理用户安全性

Posted on 2012-04-08 15:12  SkyWorld  阅读(2104)  评论(0编辑  收藏  举报

管理用户安全性

 

数据库用户账户包括以下内容:

唯一的用户名,验证方法,默认表空,临时表空间,用户概要文件,使用者组,锁定状态。

 

预定义的账户:SYSSYSTEM

 

查看当前用户

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种(connectresourcescheduler_admindbaselect_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中表的外键参照