1.创建一个用户
创建用户dog密码是wangwang,默认的用户表空间是test_data,默认的临时表空间是test_temp,在test_data表空间上的磁盘限额是11M,在users表空间磁盘限额1M
SQL> create user dog identified by wangwang default tablespace test_data temporary tablespace test_temp quota 11m on test_data quota 1m on users password expire;
2.查询用户是不是已经创建--使用DBA用户
SQL> col username for a10
SQL> col default_tablespace for a10
SQL> col temporary_tablespace for a10
SQL> select username,default_tablespace,temporary_tablespace,created from dba_users where username like '%DOG%';
USERNAME DEFAULT_TA TEMPORARY_ CREATED
---------- ---------- ------------------------
TESTDOG TEST_DATA TEST_TEMP 17-1月 -13
DOG TEST_DATA TEMP 17-1月 -13
查DOG用户的磁盘限额
SQL> select username,tablespace_name,bytes/1024/1024 MB,max_bytes/1024/1024 MAX_MB from dba_ts_quotas where username='DOG';
USERNAME TABLESPACE MB MAX_MB
---------- ---------- ---------- ----------
DOG USERS 0 1
DOG TEST_DATA 0 11
3.修改用户的磁盘限额:
SQL> alter userdog quota 0 on users;
用户已更改。
修改限额为0M以后,即此时如果用户DOG在USERS表空间中已经创建了对象,所创建的对象可以继续使用,无法再要求新的磁盘空间。
SQL> alter userdog quota 15m ontest_data;
用户已更改。
SQL> selectusername,tablespace_name,bytes/1024/1024 MB,max_bytes/1024/1024 MAX_MB from dba_ts_quotas where username='DOG';
USERNAME TABLESPACE MB MAX_MB
---------- ---------- ---------- ----------
DOG TEST_DATA 0 15 ---在USERS表上的修改为0M限额,所以不显示。
4.用户账户解锁加锁
示例SCOTT用户解锁:
使用DBA或SYSDBA登陆,在运行栏里面敲:sqlplus(空格)/nolog 回车
接着在弹出框里面敲:conn sys/password as sysdba回车提示已连接
最后敲: alter user scott identified by tiger; 修改密码
alter user scott account unlock; 再解锁
对SCOTT解锁这样就解决了。
账户加锁:
BYS@bys1>create user test identified by test;
User created.
BYS@bys1>grant connect,resource to test;
Grant succeeded.
BYS@bys1>conn test/test ---此时可以登陆
Connected.
TEST@bys1>conn bys/bys
Connected.
BYS@bys1>alter user test account lock; --使用DBA账户对TEST用户加锁
User altered.
BYS@bys1>conn test/test
ERROR:
ORA-28000: the account is locked --登陆时提示账户已经被锁定
Warning: You are no longer connected to ORACLE.
5.删除用户
不能删除当前正在与ORACLE连接的用户。如此用户包括了对象(如已经创建有表),要用CASCADE子句,会连带删除用户表。
SQL>drop user testdog;
用户已删除。
TEST@bys1>create table aa(a number);
Table created.
BYS@bys1>drop user test;
drop user test
*
ERROR at line 1:
ORA-01922: CASCADE must be specified to drop 'TEST' ---用户有表时需要使用CASCADE关键字。
BYS@bys1>drop user test cascade;
User dropped.