创建用户操作的核对清单
1.确定用户需要在其中存储对象的表空间。
2.确定每个表空间的限额。
3.指定一个缺省表空间与临时表空间。
4.创建用户。
5.向用户授予权限与角色
查看表空间
1 SQL> desc dba_tablespaces 2 Name Null? Type 3 ----------------------------------------- -------- ---------------------------- 4 TABLESPACE_NAME NOT NULL VARCHAR2(30) 5 BLOCK_SIZE NOT NULL NUMBER 6 INITIAL_EXTENT NUMBER 7 NEXT_EXTENT NUMBER 8 MIN_EXTENTS NOT NULL NUMBER 9 MAX_EXTENTS NUMBER10 PCT_INCREASE NUMBER11 MIN_EXTLEN NUMBER12 STATUS VARCHAR2(9)13 CONTENTS VARCHAR2(9)14 LOGGING VARCHAR2(9)15 FORCE_LOGGING VARCHAR2(3)16 EXTENT_MANAGEMENT VARCHAR2(10)17 ALLOCATION_TYPE VARCHAR2(9)18 PLUGGED_IN VARCHAR2(3)19 SEGMENT_SPACE_MANAGEMENT VARCHAR2(6)20 DEF_TAB_COMPRESSION VARCHAR2(8)21 RETENTION VARCHAR2(11)22 BIGFILE VARCHAR2(3)23 24 SQL> select tablespace_name,contents,extent_management(区管理方式) from dba_tablespaces;25 26 TABLESPACE_NAME CONTENTS EXTENT_MAN27 ------------------------------ --------- ----------28 SYSTEM PERMANENT LOCAL29 UNDOTBS1 UNDO LOCAL30 SYSAUX PERMANENT LOCAL31 TEMP TEMPORARY LOCAL32 USERS PERMANENT LOCAL33 USERDATA PERMANENT LOCAL34 WF1 PERMANENT LOCAL35 WF2 PERMANENT LOCAL
获取用户信息
可以通过查询以下视图来获取有关用户的信息:
1.DBA_USERS
2.DBA_TS_QUOTAS
使用以下查询查找用于所有用户的default_tablespace。
1 SQL> COL USERNAME FOR A10; 2 SQL> COL DEFAULT_TABLESPACE FOR A20; 3 SQL> COL TEMPORARY_TABLESPACE FOR A20; 4 SQL> SELECT USERNAME,DEFAULT_TABLESPACE,PROFILE FROM DBA_USERS; 5 6 USERNAME DEFAULT_TABLESPACE PROFILE 7 ---------- -------------------- ------------------------------ 8 MGMT_VIEW SYSTEM DEFAULT 9 SYS SYSTEM DEFAULT10 SYSTEM SYSTEM DEFAULT11 DBSNMP SYSAUX MONITORING_PROFILE12 SYSMAN SYSAUX DEFAULT13 BOOBOOKE USERS DEFAULT14 OUTLN SYSTEM DEFAULT15 MDSYS SYSAUX DEFAULT16 ORDSYS SYSAUX DEFAULT17 CTXSYS SYSAUX DEFAULT18 ANONYMOUS SYSAUX DEFAULT
删除用户
如果方案中含有对象,请使用 CASCADE 子句删除该方案中的所有对象。DROP USER aaron CASCADE;不能删除当前与 Oracle 服务器连接的用户。
原则:
1.在删除用户前,CASCADE 选项将删除方案中的所有对象。如果方案中包含任何对象,则必须指定该选项。
2.不能删除当前与Oracle 服务器连接的用户
1 删除BOOBOOKE:2 SQL> show user3 USER is "SYS"4 SQL> drop user boobooke cascade;5 6 User dropped.
创建新用户:数据库验证
1 设置初始口令 2 CREATE USER aaron 3 IDENTIFIED BY soccer 4 DEFAULT TABLESPACE data 5 DEFAULT TEMPORARY TABLESPACE temp 6 QUOTA 15M ON data 7 QUOTA 10M ON users 8 PASSWORD EXPIRE; 9 10 CREATE USER user11 IDENTIFIED { BY password | EXTERNALLY}12 [ DEFAULT TABLESPACE tablespace ]13 [ TEMPORARY TABLESPACE tablespace ]14 [ QUOTA {integer [K | M ] | UNLIMITED } ON tablespace15 [ QUOTA {integer [K | M ] | UNLIMITED } ON tablespace 16 ]...]17 [ PASSWORD EXPIRE ]18 [ ACCOUNT { LOCK | UNLOCK }]19 [ PROFILE { profile | DEFAULT }]
其中:
User:是用户名
IDENTIFIED BY password:指定用户在登录时需通过数据库验证,还必须提供口令
EXTERNALLY:指定用户需通过操作系统验证
DEFAULT 或 TEMPORARY TABLESPACE:为用户标识缺省或临时表空间
QUOTA:定义表空间中允许用户拥有对象所具有的最大空间(可将限额定义为整数字节或千字节/兆字节。关键字UNLIMITED用于指定用户拥有的对象可使用表空 间内的全部可用空间。缺省情况下,用户在任何表空间上都没有限额。)
PASSWORD EXPIRE:强制用户在使用SQL*Plus 登录到数据库时重置口令(该选项仅在用户通过数据库进行验证时有效)。
ACCOUNT LOCK/UNLOCK:可用于显式锁定或解除锁定用户帐户(UNLOCK为缺省设置)
PROFILE:用于控制资源使用和指定用户的口令控制机制。
创建用户BOOBOOKE
要求:
1.使用profile为默认;
2.默认表空 users,限额 10M;
3.临时表空间默认 temp;
4.强制用户在使用SQL*Plus 登录到数据库时重置口令
注:未分配角色
1 SQL> show user 2 USER is "SYS" 3 SQL> CREATE USER BOOBOOKE IDENTIFIED BY oracle_123 4 2 DEFAULT TABLESPACE users 5 3 quota 10M on users 6 4 password expire; 7 8 User created. 9 10 SQL>
创建新用户:操作系统验证
1.OS_AUTHENT_PREFIX 初始化参数用于指定用户名的格式
2.缺省为 OPS$
1 设置初始口令:2 CREATE USER aaron3 IDENTIFIED EXTERNALLY4 DEFAULT TABLESPACE USERS5 TEMPORARY TABLESPACE temp6 QUOTA 15m ON data7 PASSWORD EXPIRE;
操作系统验证:
用 CREATE USER命令的 IDENTIFIED EXTERNALLY子句指定用户必须通过操作系统进行验证。当用户直接登录到运行Oracle 服务器的计算机上时,该选项通常很有用。
操作系统验证的用户名:
OS_AUTHENT_PREFIX 初始化参数用来指定操作系统验证的用户名的格式。该参数的缺省值为 OPS$,以便与 Oracle 服务器的早期版本向后兼容。要将前缀设置为NULL值,请将该初始化参数指定为:OS_AUTHENT_PREFIX =" "。此处指定允许操作系统用户aaron无需经过Oracle 服务器验证即可访问数据库。因此,若要使用SQL*Plus 登录到系统,则UNIX 用户 aaron必须从该操作系统输入下列命令:$ sqlplus /注:使用 OS_AUTHENT_PREFIX=OPS$ 时:提供了灵活的用户验证方式,既可通过操作系统进行验证,也可通过Oracle 服务器进行验证。在这种情况下,DBA 可通过输入下列格式的命令创建用户:
1 CREATE USER ops$user2 IDENTIFIED BY password ...
1.登录到运行 Oracle 服务器的计算机上的用户无需提供口令。如果用户从远程客户机连接,则可提供口令以实现连接。
2.设置另一个初始化参数 REMOTE_OS_AUTHENT=TRUE,指定用户可通过远程操作系统进行验证。缺省值 FALSE表示用户只能通过运行 Oracle 服务器的计算
机进行验证。应小心使用该参数,因为可能存在安全隐患。3.如果数据库中的某些用户通过操作系统进行验证,则更改 OS_AUTHENT_PREFIX 可防止这些用户登录到数据库。
在操作系统上添加用户:bbker
1 oracle$ useradd bbker2 usermod: cannot lock /etc/passwd; try again later.3 注:网络上大多提示 删除/etc/目录下的passwd.lock文件,我在本机上并未发现此文件。google提示用sudo命令4 oracle$ sudo useradd bbker5 [sudo] password for oracle: oracle6 oracle$ sudo passwd bbker7 输入新的 UNIX 密码: bbker1238 重新输入新的 bbker1239 passwd:已成功更新
1 SQL> create user ops$bbker 2 2 IDENTIFIED EXTERNALLY 3 3 default tablespace users; 4 5 User created. 6 7 SQL> Grant create session to OPS$bbker; 8 9 Grant succeeded.10 11 oracle$ su - bbker12 bbker$ export PATH=$ORACLE_HOME/bin:$PATH13 bbker$ sqlplus /14 注:一直提示权限错误。oracle数据库是在oracle用户下安装的,当切换到bbker用户时,bbker对oracle数据库的访问权限做了限制,此次实验为达到目标。换个思路,在oracle用户下实现:操作系统验证
删除用户ops$bbker:
1 SQL> drop user ops$bbker cascade;2 User dropped.
添加用户ops$oracle:
1 SQL> create user ops$oracle 2 2 identified externally 3 3 default tablespace users; 4 5 User created. 6 7 SQL> Grant create session to OPS$oracle; 8 9 Grant succeeded.10 11 SQL> select username from dba_users;12 13 USERNAME14 ------------------------------15 MGMT_VIEW16 SYS17 SYSTEM18 DBSNMP19 SYSMAN20 OPS$ORACLE21 BOOBOOKE22 OUTLN23 MDSYS24 ORDSYS25 CTXSYS26 27 SQL> !28 oracle$ sqlplus /29 30 SQL*Plus: Release 10.2.0.1.0 - Production on Sat May 12 19:03:58 201231 32 Copyright (c) 1982, 2005, Oracle. All rights reserved.33 34 35 Connected to:36 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production37 With the Partitioning, OLAP and Data Mining options38 39 40 SQL> show user41 USER is "OPS$ORACLE"42 SQL> 43 --创建新用户 操作系统验证 成功
更改用户的表空间限额
在下列情况下需要修改用户的表空间限额:
1.当用户所拥有表的增长速度异常快时。
2.当应用程序得到增强而要求额外的表或索引时。
3.当重新安排对象并将其置入不同的表空间时。
修改用户的表空间限额:ALTER USER aaron QUOTA 0 ON USERS;
使用下列命令修改表空间限额或重新分配表空间:
1 ALTER USER user2 [ DEFAULT TABLESPACE tablespace]3 [ TEMPORARY TABLESPACE tablespace]4 [ QUOTA {integer [K | M] | UNLIMITED } ON tablespace5 [ QUOTA {integer [K | M] | UNLIMITED } ON tablespace ] 6 ...]
如果分配的限额为0,用户拥有的对象仍保留在撤消的表空间内,但不能给它们分配新的空间。例如,如果表空间 USERS内有一个10 MB 的表,若将该表空间的限额改为 0,则不能再为该表分配新区。任何未更改的选项保持不变。
注:对于UNLIMITED TABLESPACE权限应格外注意,因为它优先于限额设置。