oralce数据库的用户全介绍

原创
2016-06-07 15:10:55 605浏览

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 ORACLE数据库是个多用户系统。为了保证数据库系统的安全,ORACLE数据库管理系统配制了良好的安全机制。例如,每一个ORACLE数据库都有一个用户表,它记载着每一个用户的有关信息,一旦用户进入系统,

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入

  ORACLE数据库是个多用户系统。为了保证数据库系统的安全,ORACLE数据库管理系统配制了良好的安全机制。例如,每一个ORACLE数据库都有一个用户表,它记载着每一个用户的有关信息,一旦用户进入系统,ORACLE系统会通过这张表来检查用户的合法性。又如,ORACLE系统通过合理分配用户的权限来管理用户。通常,ORACLE将用户分为三类,即DBA、RESOUCE和CONNECT三类角色,使不同的用户的权限各不相同。

  在创建数据库时,系统自动建立了两个用户,即SYS和SYSTEM用户,且授给这两个用户DB权限,由于DBA具有最高权限,建议将它们的口令及时修改,以免个别用户以DBA角色进入系统,有意无意地给系统造成损害。

  除了SYS、SYSTEM用户外,其余用户都要一一建立,建立用户的方法如下:

  假设要建的用户名为RSXT,口令为RSPASS;默认的表空间为USER,临时表空间为TEMP,表空间限额为3M,其余默认,则可用下面方法创建新用户:

  1. SQLDBA>CREATE USER RSXT IDENTIFIED BY RSPASS

  2. DEFAULT TABLESPACE USER

  3. TEMPORARY TABLESPACE TEMP

  4. QUOTA 3M ON USER;

  请注意,该用户建立后,还要及时授权,否则像上述刚刚建成的用户,则一无所为,甚至都不能连接数据库。对一般用户,通常授予CONNECT和RESOURCE角色权限,命令如下:

  SQLDBA>GRANT CONNECT,RESOURCE TO RSXT;

  对于一个有着许多用户的数据库系统,我们可以通过下述方法来了解数据库的用户情况。

  1.对于非DBA用户

  对于非DBA用户,有两条命令,即:

  (1)SQL>SELECT*FROM ALL-USERS;

  (2)SQL>SELECT*FROM USER-USERS;

  其中,从USER-USERS表中,可以了解到该用户的默认表空间和临时表空间等信息。

  2.对于DBA用户

  对于DBA用户,有三条命令,即:

  (1)SQLDBA>SELECT*FROM ALL-USERS;

  (2)SQLDBA>SELECT*FROM USER-USERS;

  (3)SQLDBA>SELECT*FROM DBA-USERS;

  其中,从DBA-USERS中,可以了解到所有用户的详细信息,因而该命令对于数据库管理员来说是很有用的。

  关于非DBA用户的信息

  由于DBA用户具有最高权限,为安全起见,只有Oracle系统管理员才授予DBA权限,大多数用户均为非DBA用户。尽管相应的权限少了,但是从ORACLE数据字典中,还是可以得到 很多关于非DBA用户的有用信息。

  我们可以采用下述方法来了解有关非DBA用户的信息。

  1.SQL>SELECT*FROM USER-USERS;

  可以查看该用户的默认表空间,临时表空间和用户创建时间。

  2.SQL>SELECT*FROM USER-TABLES;

  可以查看该用户创建的所有表的详细信息,由于列名较多,一屏看不了几个表。

  如果仅仅想查看用户所建表的表名,可以用下面的命令:

  SQL>SELECT TABLE-NAME FROM USER-TABLES;

  3.SQL〉SELECT*FROM USER-VIEWS;

  可以查看该用户所创建的视图,包括创建视图的文本。

  同样,如果仅仅想查看用户所建视图的视图名,可以用下面的命令:

  SQL>SELECT VIEW-NAME FROM USER-VIEWS;

  4.SQL>SELECT*FROM USER-TABLESPACES;

  可以查看该用户可存取的表空间的信息。

  5.SQL>SELECT TABLESPACE-NAME,SUM(BYTES),SUM(BLOCKS)

  FROM USER-FREE-SPACE GROUP BY TABLESPACE-NAME;

  可以查看该用户可存取的表空间的剩余空间。

  6.SQL>SELECT *FROM USER-TS-QUOTAS;

  可以查看该用户的表空间的份额。

  7.SQL>SELECT *FROM USER-ROLE-PRIVS;

  可以查看该用户被授予的角色。

  8.SQL>SELECT *FROM USER-SYS-PRIVS;

  可以查看该用户的系统权限及能否再授予其它用户的权限。

  9.SQL>SELECT *FROM USER-TAB-PRIVS-RECD;

  可以查看该用户能访问其它用户的表、视图等的对象权限。

  10.SQL>SELECT *FROM USER-TAB-PRIVS-MADE;

  可以查看该用户授予其它用户的表、视图等的对象权限。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。