读书人

Oracle数据库权限管理惯用的SQL语句

发布时间: 2012-11-14 10:12:18 作者: rapoo

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

读书人网 >其他数据库

热点推荐