Oracle数据库权限管理常用的SQL语句
1、Oracle9g中的三个默认用户
???用户名?????????????????密码
???sys??????????????????change_on_install?????[as?sysdba]
???system???????????????manager
???scott?????????????????tiger
2、用户登录
1)开启监听
???C:\Users\Administrator>lsnrctl?start
2)开启数据库的实例
???C:\Users\Administrator>oradim?-starup?-sid?orcl
3)超级管理员登录
???C:\Users\Administrator>sqlplus?/?as?sysdba
4)创建普通用户并登录
???create?user?lisi?identified?by?lisi;????????????//创建一个用户名为lisi,密码为lisi的用户
???default?tablespace?users??????????????????????? //默认表空间为users,用来存放数据
???temporary?tablespace?temp?????????????????????? //临时表空间temp,等于windows临时文件夹
???quota?50M?on?users????????????????????????????? //限定用户只能使用users表空间为50M
???C:\Users\Administrator>sqlplus?lisi/lisi??????? //lisi用户登录
5)限制用户
???用户加锁:alter?User用户名Account?Lock
???用户解锁:alter?User用户名Account?Unlock
???用户口令既刻失效:alter?User?用户名Password?Expire
6)删除用户
???Drop?user?用户名??????????用户下面没有对象
???Drop?User?用户名?cascade??其中CasCade表示删除用户所有对象
7)断开正在连接的用户
???SQL>disconn
3、系统权限
???grant?create?session?to?lisi;?????????????????//授予lisi会话的权限
???grant?create?table?to?lisi;???????????????????//授予lisi创建表的权限
???grant?unlinited?tablespace?to?lisi;????????????//授予lisi无限制使用表空间的权限???
???revoke?create?session?from?lisi;?????????????//撤销lisi会话的权限
???revoke?create?table?from?lisi;???????????????//撤销lisi创建表的权限
???revoke?unlimited?tablespace?to?lisi;??????????//撤销lisi无限制使用表空间的权限
4、对象权限
???grant?select?on?mytable?to?lisi;??????????????//授予lisi查看mytable表的权限
???grant?insert?on?mytable?to?lisi;??????????????//授予lisi在mytable表中插入数据的权限
???grant?all?on?mytable?to?lisi;????????????????//授予lisi操作mytable表所有的权限
???revoke?select?on?mytable?from?lisi;????????????//撤销lisi查看mytable表的权限
???revoke?insert?on?mytable?from?lisi;????????????//撤销lisi在mytable表插入数据的权限
???revoke?all?on?mytable?from?lisi;??????????????//撤销lisi操作mytable表的所有权限?
5、给所有用户授予权限
???grant?create?any?table?to?public;??????????????//把创建表的权限授予给所有用户
???grant?create?session?to?public;???????????????//把会话的权限授予给所有的用户
???grant?unlinited?tablespace?to?public;??????????//把无限之使用表空间的权限授予给所有的用户
???grant?select?on?mytable?to?public;?????????????//把查看mytable表的权限授予给所有用户?
???revoke?create?any?table?from?public;???????????//撤销所有用户创建表的权限
???revoke?create?session?from?public;????????????//撤销多有用户的会话权限
???revoke?unlinited?tablespace?from?public;????????//撤销用户无限制使用表空间的权限
6、使用数字字典
???select*from?user_sys_privs;?????????????????//查看当前用户拥有哪些系统权限
???select*from?user_tab_privs;?????????????????//查看当前用户拥有哪些对象权限
???select?*?from?dba_users;?????????????????????? //查看数据库里面所有用户,前dba权限的帐号,如sys,system
???select?*?from?all_users;??????????????????????? ?//查看你能管理的所有用户!
???select?*?from?user_users;????????????????????? //查看当前用户信息?!
7、对象权限可以控制到列
???grant?update(name)?on?mytable?to?lisi;????????//授予lisi用户更新mytable表name列的权限
???grant?insert(id)?on?mytable?to?lisi;???????????//授予lisi用户在mytable表id列插入数据的权限
???select*from?user_col_privs;????????????????? //查看当前用户拥有哪些列的对象权限
注意:查询和删除不能控制到列。?????????????????? //ddl??dml??dcl
8、系统权限的传递
???grant?alter?any?table?to?lisi?with?admin?option;???????//超级管理员授予lisi修改任意表的管理权限
9、对象权限的传递
???grant?select?on??A??to?lisi?with?grant?option;?????????//把A表的查看权限授予给lisi???
10、设置命令行屏幕的宽度
set?linesize?400????????????????????????????????//设置行的宽度为400
11、角色
create?role?myrole;?????????????????????????? //创建角色
grant?create?session?to?myrole;???????????????//授予会话权限给角色
grant?create?table?to?myrole;?????????????????//授予创建表权限给角色
drop?role?myrole;?????????????????????????? ?//删除角色
Create?table
Create?any?table
Alter?any?table
Drop?any?table
注意:有些系统权限无法直接赋予角色
Grant?unlinited?tablespace?to?myrole;
Alter?table
Drop?table
表是属于某一个用户的,而角色不属于任一用户的,是共同拥有的。
12、获取表:
select?table_name?from?user_tables;????????????????//当前用户的表???????
select?table_name?from?all_tables;?????????????????//所有用户的表???
select?table_name?from?dba_tables;????????????????//包括系统表
select?table_name?from?dba_tables?where?owner='用户名'
user_tables:
table_name,tablespace_name,last_analyzed等
dba_tables:
ower,table_name,tablespace_name,last_analyzed等
all_tables:
ower,table_name,tablespace_name,last_analyzed等
all_objects:
ower,object_name,subobject_name,object_id,created,last_ddl_time,timestamp,status等
13、获取表字段:
select?*?from?user_tab_columns?where?Table_Name='用户表';
select?*?from?all_tab_columns?where?Table_Name='用户表';
select?*?from?dba_tab_columns?where?Table_Name='用户表';
user_tab_columns:
table_name,column_name,data_type,data_length,data_precision,data_scale,nullable,column_id等
all_tab_columns?:
ower,table_name,column_name,data_type,data_length,data_precision,data_scale,nullable,column_id等
dba_tab_columns:
ower,table_name,column_name,data_type,data_length,data_precision,data_scale,nullable,column_id等
14、获取表注释:
select?*?from?user_tab_comments
user_tab_comments:table_name,table_type,comments
相应的还有dba_tab_comments,all_tab_comments,这两个比user_tab_comments多了ower列。
15、获取字段注释:
select?*?from?user_col_comments
user_col_comments:table_name,column_name,comments
相应的还有dba_col_comments,all_col_comments,这两个比user_col_comments多了ower列。
?
?
转载于:http://my.oschina.net/u/273709/blog/86116