第十六章: 用户管理
  1、schema : user.object ,用户认证方式:os 认证,database 认证
   
   
   2、建立 database认证的用户:
   10:00:48 SQL> create user rose                                                                                                           
 10:14:46   2    identified by oracle                                                                                                     
 10:14:53   3     default tablespace users                                                                                                
 10:14:58   4     temporary tablespace temp                                                                                               
 10:15:08   5      quota 10m on users                                                                                                     
 10:15:18   6    password expire;                                                                                                        
User created.
10:15:27 SQL> grant create session to rose;
Grant succeeded.
10:15:41 SQL> conn rose/oracle                                                                                                           
 ERROR:
 ORA-28001: the password has expired
 Changing password for rose
 New password:                                                                                                                            
 Retype new password:                                                                                                                     
 Password changed
 Connected.
 10:15:47 SQL>
3、建立OS认证(操作系统认证)用户(sys 用户属于os 认证)
10:19:00 SQL> show parameter auth
NAME                                 TYPE        VALUE
 ------------------------------------ ----------- ------------------------------
 os_authent_prefix                    string      ops$
10:19:00 SQL> show parameter auth
NAME                                 TYPE        VALUE
 ------------------------------------ ----------- ------------------------------
 os_authent_prefix                    string      ops$
 remote_os_authent                    boolean     FALSE
 10:19:01 SQL> create user "OPS$ORACLE"                                                                                                   
 10:19:34   2    identified  externally                                                                                                   
 10:19:42   3     profile default                                                                                                         
 10:19:49   4      default tablespace users                                                                                               
 10:19:53   5      temporary tablespace temp                                                                                              
 10:19:59   6         quota 10m on users;                                                                                                
User created.
10:20:07 SQL>
10:20:07 SQL> select username ,account_status from dba_users;
USERNAME                       ACCOUNT_STATUS
 ------------------------------ --------------------------------
 MGMT_VIEW                      OPEN
 SYS                            OPEN
 SYSTEM                         OPEN
 DBSNMP                         OPEN
 SYSMAN                         OPEN
 SCOTT                          OPEN
 ROSE                           OPEN
 OPS$ORACLE                     OPEN
 TOM                            OPEN
10:20:55 SQL> select username ,password ,PROFILE,DEFAULT_TABLESPACe,TEMPORARY_TABLESPACE from dba_users;
 USERNAME   PASSWORD                       PROFILE    DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE
 ---------- ------------------------------ ---------- ------------------------------ ------------------------------
 MGMT_VIEW  4F538DF5F344F348               DEFAULT    SYSTEM                         TEMP
 SYS        8A8F025737A9097A               DEFAULT    SYSTEM                         TEMP
 SYSTEM     2D594E86F93B17A1               DEFAULT    SYSTEM                         TEMP
 DBSNMP     FFF45BB2C0C327EC               MONITORING SYSAUX                         TEMP
                                           _PROFILE
SYSMAN     2CA614501F09FCCC               DEFAULT    SYSAUX                         TEMP
 SCOTT      F894844C34402B67               DEFAULT    USERS                          TEMP
 ROSE       1166A1F535AF6EFB               DEFAULT    USERS                          TEMP
 OPS$ORACLE EXTERNAL                       DEFAULT    USERS                          TEMP
10:23:05 SQL> grant create session to ops$oracle;
Grant succeeded.
10:23:14 SQL> exit                                                                                                                       
 Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
 With the Partitioning, OLAP and Data Mining options
 [oracle@work ~]$ id
 uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba)
[oracle@work ~]$ sqlplus / ----------登录不需要提供用户名和密码(oracle 必须属于os的dba组)
SQL*Plus: Release 10.2.0.1.0 - Production on Wed Aug 10 10:23:20 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
 Connected to:
 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
 With the Partitioning, OLAP and Data Mining options
10:23:20 SQL> 
 10:23:20 SQL> show user;                                                                                                                 
 USER is "OPS$ORACLE"
 10:23:22 SQL>
4、quota 管理:(对象的最大存储空间,用户在表空间上建立对象,必须在相应的tablespace 上获得quota)
10:27:09 SQL> select TABLESPACE_NAME,USERNAME,bytes/1024,max_bytes/1024/1024 from dba_ts_quotas                                          
 10:27:11   2   where username='ROSE';                                                                                                   
TABLESPACE_NAME                USERNAME                       BYTES/1024 MAX_BYTES/1024/1024
 ------------------------------ ------------------------------ ---------- -------------------
 USERS                          ROSE                                    0                  10
------BYTES 已经使用过的配额,max_bytes 所分配的配额
10:28:18 SQL> grant create table to rose;
Grant succeeded.
10:28:23 SQL> grant select on scott.emp to rose;
Grant succeeded.
10:28:26 SQL> conn rose/rose                                                                                                             
 Connected.
 10:28:29 SQL> 
 10:28:29 SQL> create table emp1 as select * from scott.emp;                                                                             
Table created.
10:28:41 SQL> conn /as sysdba                                                                                                            
 Connected.
 10:28:47 SQL> 
 10:28:47 SQL> select TABLESPACE_NAME,USERNAME,bytes/1024,max_bytes/1024/1024 from dba_ts_quotas                                          
 10:28:50   2  where username='ROSE';                                                                                                    
TABLESPACE_NAME                USERNAME                       BYTES/1024 MAX_BYTES/1024/1024
 ------------------------------ ------------------------------ ---------- -------------------
 USERS                          ROSE                                   64                  10
10:28:53 SQL>
-------回收quota
10:29:26 SQL> alter user rose quota 0 on users;
User altered.
 10:30:01 SQL> select TABLESPACE_NAME,USERNAME,bytes/1024,max_bytes/1024/1024 from dba_ts_quotas                                          
 10:30:04   2   where username='ROSE';                                                                                                   
no rows selected
 10:29:30 SQL> conn rose/rose                                                                                                             
 Connected.
 10:29:37 SQL> 
 10:29:37 SQL> insert into emp1 select * from emp1;                                                                                      
14 rows created.
10:29:51 SQL> /
28 rows created.
10:30:20 SQL> conn rose/rose                                                                                                             
 Connected.
 10:31:51 SQL> 
 10:31:51 SQL> insert into emp1 select * from emp1;                                                                                      
56 rows created.
10:31:54 SQL> /
112 rows created.
10:31:56 SQL> /
224 rows created.
10:31:57 SQL> /                                                                                                                          
 insert into emp1 select * from emp1
 *
 ERROR at line 1:
 ORA-01536: space quota exceeded for tablespace 'USERS'
 10:31:58 SQL> analyze table emp1 compute statistics;                                                                                    
Table analyzed.
10:32:16 SQL> select table_name,num_rows ,blocks,empty_blocks from user_tables;
TABLE_NAME                       NUM_ROWS     BLOCKS EMPTY_BLOCKS
 ------------------------------ ---------- ---------- ------------
 EMP1                                  448          8            0
10:32:36 SQL>
 5、删除用户:
 10:33:56 SQL> select username,sid,serial# from v$session                                                                                 
 10:34:08   2   where username is not null;                                                                                              
USERNAME                              SID    SERIAL#
 ------------------------------ ---------- ----------
 SYS                                   153        219
 ROSE                                  159         55
10:34:15 SQL> 
 10:33:40 SQL> 
 10:33:40 SQL> drop user rose;                                                                                                            
 drop user rose
 *
 ERROR at line 1:
 ORA-01940: cannot drop a user that is currently connected
------强制关闭用户会话
 10:34:15 SQL> alter system kill session '159,55';                                                                                       
System altered.
10:32:36 SQL> select * from emp1;                                                                                                        
 select * from emp1
 *
 ERROR at line 1:
 ORA-00028: your session has been killed
 10:35:23 SQL> drop user rose cascade;                                                                                                   
User dropped.
10:36:18 SQL>