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列。

转载于:https://my.oschina.net/u/273709/blog/86116

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值