Oracle 创建用户

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle 创建用户

创建一个新的数据库用户是使用CREATE USER 语句完成的,该语句一般是由DBA 用户来执行;如果要以其他用户身份创建用户,则要求用户必须具有CREATE USDER 系统权限。

每个用户在连接到数据库时,都需要进行身份验证。身份验证可以通过操作系统进行,也可以通过数据库进行,或者通过独立的网络服务器进行。数据库验证是指使用数据库来检查用户、密码以及连接用户的身份,该方式也是最常用的用户验证方式,因此本书重点介绍数据库验证方式。采用数据库验证具有如下优点:

● 用户账号及其身份验证全部由数据库控制,不需要借助数据库外的任何控制。 ● 当使用数据库验证时,Oracle 提供了严格的密码管理机制,加强了密码的安全性。 如果使用数据库验证,则创建用户时必须提供连接密码,并且密码必须是单字节字符。例如,下面的语句创建了一个用户ATG ,并为该用户指定了登录密码、默认表空间、临时表空间:

SQL> connect system/password

已连接。

SQL> create user developer

2 identified by developer

3 default tablespace user01

4 quota 10m on user01

5 temporary tablespace temp;

用户已创建。

在上面的语句中,创建了一个名为DEVELOPER 的用户。其中,子句IDENTIFIED BY 指定用户密码,该密码是用户的初始密码,在用户登录到数据库后可以对其进行修改。DEFAULT TABLESPACE 子句为用户指定默认表空间,这样在建立数据库对象(表、索引和簇)时,如果不指定TABLESPACE 子句,Oracle 会自动在默认表空间上为这些对象分配空间。TEMPORARY TABLESPACE 子句用于为用户指定临时表空间,当用户所执行的SQL 语句需要进行排序操作时,若临时数据尺寸超过PGA

工作区,则会在该表空间上建立临时段。QUOTA 子句为用户指定表空间配额,即用户对象在表空间上可占用的最大空间。

在创建用户时需要注意,Oracle 不允许使用其他类型的表空间作为临时表空间使用,同样,也不允许使用临时表空间作为默认表空间。否则会出现如下所示的错误: SQL> create user developer02

2 identified by developer

3 default tablespace USER01

4 quota 128m on users

5 temporary tablespace USERS;

create user atg02

注 意

使用过Oracle 10g 以及早期版本的用户需要注意,11g 中的用户密码是区分大小的。

*

第 1 行出现错误:

ORA-10615: Invalid tablespace type for temporary tablespace

在创建用户时,还可以增加PASSWORD EXPIRE,这可以强制用户在每一次登录数据库后必须修改密码。例如:

SQL> create user developer02

2 identified by developer

3 default tablespace USER01

4 quota 128m on users

5 temporary tablespace TEMP

6 password expire;

用户已创建。

SQL> connect developer02/developer

ERROR:

ORA-28001: the password has expired

更改developer02 的口令

新口令:

重新键入新口令:

在执行CREATE USER创建用户后,需要注意如下事项:

●初始建立的用户没有任何权限,不能执行任何数据库操作。

●如果建立用户时不指定TEMPORARY TABLESPACE子句,Oracle会将数据库默认

的临时表空间作为用户的临时表空间。

●如果建立用户时不指定DEFAULT TABLESPACE子句,Oracle会将USERS表空间

作为用户的默认表空间。

●如果建立用户时没有为表空间指定QUOTA子句,则用户在特定表空间上的配额为

0,用户将不能在相应表空间上建立数据对象。

因为初始建立的用户没有任何权限,所以为了使用户可以连接到数据库,必须授予其CREATE SESSION权限。当采用数据库验证方式时,必须通过用户名和密码连接到数据库。例如:

SQL> connect developer/developer

ERROR:

ORA-01045: user DEVELOPER lacks CREA TE SESSION privilege; logon denied

警告: 您不再连接到ORACLE。

SQL> connect system/admin

已连接。

SQL> grant create session,create table to developer;

授权成功。

SQL> conn developer/developer;

已连接。

当要在表空间上建立数据对象时,用户必须具有相应的空间配额,或者UNLIMITED TABLESPACE系统权限。建立DEVELOPER用户时,由于没有为其在USER03表空间上指定空间配额,所以该在USER03表空间上的空间配额为0,即该用户不能使用USER03表空间。例如:

SQL> create table test2(col int) tablespace user03;

create table test2(col int) tablespace user03

*

第 1 行出现错误:

ORA-01950: 对表空间'USER03' 无权限

这里有一个技巧,如果要回收某用户创建数据库对象的权限,可以通过修改其所有表空间中的配额为0,这样用户已经创建的数据库对象仍然被保留,但是无法再创建新的数据库对象。

相关文档
最新文档