创建与删除用户:
创建用户语法:create user 用户名 identified by 密码 [default tablespace 默认表空间] [temporary tablespace 临时表空间] [PROFILE DEFAULT] [Quota integer/unlimited on 表空间][ACCOUNT UNLOCK|LOCK];
若用户拥有对象,则不能直接删除,否则将返回一个错误值。指定关键字cascade,可删除用户所有的对象,然后再删除用户。
--查看所有用户信息 select * from dba_users order by user_id desc; --查询系统资源文件名 select * from dba_profiles; --创建用户 CREATE USER ETS IDENTIFIED BY ETS DEFAULT TABLESPACE LYTP temporary tablespace TEMP_LYTP PROFILE DEFAULT Quota 50M on LYTP ACCOUNT UNLOCK; --赋予连接角色 grant connect to ETS; --删除用户 drop user ETS cascade;
创建的新用户是没有任何权限的,甚至连登陆的数据库的权限都没有,需要为其指定相应的权限。
CREATE USER ETS IDENTIFIED BY ETS DEFAULT TABLESPACE LYTP temporary tablespace TEMP_LYTP PROFILE DEFAULT Quota 50M on LYTP ACCOUNT UNLOCK;
1、PROFILE DEFAULT:使用系统默认的profile(如果不做特殊指定,每个用户的PROFILE都会默认的使用系统默认的PROFILE。)
2、Quota(配额):是为了限制用户对表空间的使用;比如你限制用户ETS在tablespace LYTP中的quota为50M,当用户ETS在tablespace LYTP中的数据量达到50M后,无论你的tablespace LYTP中有多少空间,ETS都无法再使用tablespace LYTP了。 默认情况下,用户对所有表空间都是没有配额的(都会对用户赋 unlimited tablespace 的权限),即不受空间的限制。
3、account lock:创建用户的时候锁定用户(默认account unlock:创建用户的时候解锁用户)
修改用户
1、修改用户密码:
--修改口令(密码) Alter user ETS identified by "12345"; --强制用户修改口令字 Alter user ETS password expire;
2、修改用户默认表空间
--修改用户缺省表空间 Alter user ETS default tablespace users;
3、修改用户临时表空间
--修改用户临时表空间 Alter user ETS temporary tablespace temp;
4、修改用户配额
--查询配额信息(max_bytes 为-1,即不受限制。)如果用户具有unlimited tablespace权限可能不出现在这里 select * from dba_ts_quotas where username='ETS'; --显示指定用户所具有的系统权限 select * from dba_sys_privs where grantee='ETS'; --修改配额(全局) grant unlimited tablespace to ETS; --回收用户对表空间的配额(全局) revoke unlimited tablespace from ETS; --修改配额(针对某个特定的表空间) alter user ETS quota unlimited on LYTP; --回收用户对表空间的配额(针对某个特定的表空间) alter user ETS quota 0 on LYTP;
5、用户解锁
--将用户加锁与解锁: Alter user ETS account lock; // 加锁 Alter user ETS account unlock; // 解锁
当然也可以集中在一起修改:
--修改用户 alter user ETS IDENTIFIED BY ETS DEFAULT TABLESPACE LYTP temporary tablespace TEMP_LYTP PROFILE DEFAULT Quota 50M on LYTP ACCOUNT UNLOCK;
查询用户信息
下面列出了相关SQL语句
--查看当前用户信息 select * from user_users; --查看当前用户的角色 select * from user_role_privs; --显示当前会话所具有的权限 select * from session_privs; --查看当前用户的系统权限 select * from user_sys_privs; --查看当前用户的表级权限 select * from user_tab_privs; --查询用户可以访问的视图文本 select * from dba_varrays; --查询用户可以访问的表 select * from all_tables; --查看用户对象 select * from user_objects; --查看用户下所有的表 select * from user_tables; --查看视图信息 select * from user_views; --查询用户段信息 select * from user_segments; --查看某表的大小 select sum(bytes)/(1024*1024) tablesize from user_segments where segment_name='&table_name' --查看索引信息 select * from user_indexes order by table_name; --查看索引被索引的字段信息 select * from user_ind_columns; --查看同义词的名称 select * from user_synonyms; --查询用户下字段信息 select * from col; select * from user_tab_columns; --查询某个表的字段 select * from col where tname='&Table_name'; select * from user_tab_columns where table_name='&Table_name';