扩大
缩小

管理用户和PROFILE——管理用户

1.建立用户

建立用户是使用命令create user 来完成的,该命令一般由dba用户来执行;如果其他身份建立用户,则要求用户必须具有create user 系统权限。

建立用户:数据库验证

数据库验证是指使用数据库来检查用户,口令以及用户身份的方式,该方式是最常用的用户验证方式。在oracle11g之前,用户口令不区分大小写。可以设置sec_case_sensitive_logon设置为false。

采用数据库验证优点:

  • 用户账户及其身份验证全部有数据库控制,而不需要借助数据库外的任何控制。
  • 当使用数据库验证时,oracle提供了严格的口令管理特征以加强口令的安全性,例如:账户锁定,口令有效期,口令验证。

如果使用数据库验证,那么在建立用户时,必须要提供口令,并且口令必须用单字节字符。

例子:建立数据库用户usertemp01:

conn sys/sys as sysdba;
create user usertemp01 identified by usertemp01
default tablespace data01 temporary tablespace temp
quota 3m on data01 password expire;

其中identified by 用于指定用户口令(数据库验证),default tablespace用于指定用户的默认表空间,temporary tablespace用于指定用户的临时表空间,quota用于指定表空间配额,也就是用户对象在表空间上可占用的最大空间。password expire用于指定终止口令,最终强制用户在登录时改变口令。

注意事项:

  • 如果在建立用户时不指定default tablespace 子句,那么oracle会将默认表空间作为用户的默认表空间。在11g之前不指定default tablespace子句,那么oracle会将system表空间作为用户的默认表空间。
  • 如果在建立用户时不指定temporary tablespace 子句,那么oracle会将数据库默认临时表空间作为用户的临时表空间。
  • 如果在建立用户时没有指定quota子句。那么用户在特定表空间上的配额为0,这样用户将不能在相应表上建立数据库对象。

1.1连接数据库

因为初始建立的用户没有任何权限,所有为了使得用户可以连接到数据库,必须为其授予create session权限。当采用数据库验证方式时,必须使用用户名和口令连接到数据库,因为在建立usertemp01时,指定了password expire ,所以再登录之前必须首先改变用户口令。

grant create session,create table to usertemp01;
conn usertemp01/usertemp01

1.2建立表t1并检查其存放位置

当建立表或索引时,如果不指定tablespace 子句,那么oracle会在用户的默认表空间上建立表段。

例子:建立表t1,并显示表段t1所在的表空间:

conn usertemp01/usertemp01
create table t1(cola int);
select tablespace_name from user_segments
where segment_name='T1';

1.3在其他表空间上建立表t2

当建立表或索引时,用户必须具有相应的表空间配额或unlimited tablespace 系统权限。因为在建立usertemp01没有在其他表空间上指定空间配额,所以该用户在其他表空间和的空间配额为0,就是说不可以在其他表空间建立表。

create table t2(cola int) tablespace users;

2.建立用户:os验证

os验证是指使用os检查用户,口令和用户身份的方式,os验证适用于局域网环境。使用这种方式的优点是连接简单,不需要提供用户名和口令。但使用os验证有以下要求:

  • 数据库用户格式:xyz 域名\os 用户名(必须大写),其中xyz为初始化参数os_authent_prefix的值。假定初始化参数os_authent_prefix的值为ops$(查询方法:show parameter os_authent_prefix),网络域名为WANGHAILIANG,并且需要为os用户(你的用户名)提供os验证方式的数据库用户,那么必须建立名称为ops$WANGHAILIANG\(你的电脑用户名)的数据库用户。
  • 如果需要使用远程os验证,则必须将初始化参数remote_os_authent设置为true。
  • 必须将文件sqlnet.ora的选项sqlnet.authentication_services设置为nts.

例子:

conn sys/sys as sysdba;
create user "OPS$WANGHAILIANG\ZHAOJIEDI1992" identified externally
default tablespace data01 quota 3m  on data01;
grant connect to "OPS$WANGHAILIANG\ZHAOJIEDI1992";

在建立了使用os验证的用户,并为其授予必要的权限之后,就可以使用os验证方式连接到数据库了。当使用os验证时,首先以os用户登录到局域网环境,然后使用一下两种方法连接到数据库:

  • 本地连接:sqlplus/
  • 远程连接:sqlplus/@demo

 


 

 

 

 

 

posted on 2013-05-28 20:06  LinuxPanda  阅读(308)  评论(0编辑  收藏  举报

导航