Oracle数据库系统权限管理

人走茶凉 提交于 2019-12-07 03:29:25

1、开启Oracle监听

C:\Users\Administrator>lsnrctl start

2、启用Oracle实例

C:\Users\Administrator>oradmin -starup -sid orcl

3、用超级管理员身份登陆进去

C:\Users\Administrator>sqlplus / as sysdba             //用超级管理员身份登陆进去

出现以下界面表示登陆成功

C:\Users\Administrator>sqlplus / as sysdba

SQL*Plus:Release 11.2.0.2.0 Production on 星期六 10月 27 10:58:03 2012

Copyrigth(c) 1982, 2010,Oracle. All rights reserved.

连接到:

Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production

SQL>show user;

USER为"SYS"

SQL>

4、用管理员身份创建一个普通用户

SQL>create user lisi;

create user lisi

                 *

第一行出现错误:

ORA-01938:必须为 CREATE USER 指定 IDENTIFIED BY

提示错误原因是创建lisi用户时没有设置密码,identified为密码的意思。

创建一个用户名为lisi,密码为lisi的用户:

SQL>create user lisi identified by lisi;

用户已创建。

SQL> 

5、使用用户lisi进行登录

 

C:\Users\Administrator>sqlplus / as sysdba

SQL*Plus:Release 11.2.0.2.0 Production on 星期六 10月 27 11:27:03 2012

Copyrigth(c) 1982, 2010,Oracle. All rights reserved.

ERROR:

ORA-01045:user LISI lacks CREATE SESSION privilege; logon denied

请输入用户名:

 

出现以上提示信息:用户lisi没有创建session的权限,登录被决绝了。意思是虽然存在lisi这个用户,但是lisi这个用户没有登录会话这个权限。所以必须要管理员给lisi这个用户授权,lisi这个用户才有登录会话的权限。

6、用超级管理员给lisi用户授予create session的权限

SQL>grant create session to lisi;

授权成功。

grantOracle权限中的关键字

7、再用lisi用户登陆一次

C:\Users\Administrator>sqlplus / as sysdba

SQL*Plus:Release 11.2.0.2.0 Production on 星期六 10月 27 11:27:03 2012

Copyrigth(c) 1982, 2010,Oracle. All rights reserved.

连接到:

Oracle Database 11g Express Edition Release 11.2.0.2.0 -Production

SQL>

 

出现以上提示则表示登陆成功。

8、lisi用户创建数据表

SQL>create table mytable (id int);

create table mytable (id int)

*

第一行出现错误:

ORA-01031:权限不足

出现以上提示,表示用户lisi没有创建表的权限。

9、管理员授予lisi创建表的权限

SQL>grant create table to lisi;

授权成功。

10、再用lisi用户创建表

 

SQL>create table mytable (id int);

create table mytable (id int)

*

第一行出现错误:

ORA-01031:对表空间 ‘SYSTEM’ 无权限

 

用户lisi有创建表的权限,没有使用表空间的权限,最终还是创建不了表,这就好比你有我房间的钥匙,但是没有我家大门的钥匙,你最终还是进不了我的房间。

11、管理员授予lisi用户不受上限表空间的使用权限,也就是说给予lisi用户不受限制使用表空间的权限

 

SQL>grant unlimited tablespace  to lisi;

授权成功。

 

12、再用lisi用户创建表

SQL>create table mytable (id int);

表已创建。

出现以上提示表示创建表成功。

13、向表mytable插入一列数据

SQL>insert into mytable values (1);

已创建1行。

14、查询刚才数据

SQL>select*from mytable;

                  ID

-------------------

                   1

15、删除mytable

SQL>drop table mytable;

表已删除。

当一个用户有使用表空间的权限,就有创建表的权限,那么这个表就属于当前用户的,用户就可以对这个表有增、删、该、查、删除表操作的权限,就不需要对这个表再授权了。

16、管理员撤销list用户的创表权限

SQL>revoke create table from lisi;

撤销成功。

17、查看当前lisi用户拥有哪些系统权限

SQL>select*from user_sys_privs;

USERNAME               PRIVILEGE                        ADMIN

------------------------------------------------------------------------

LISI                         CREATE SESSION                NO

LISI                         UNLIMITED TABLESPACE     NO

-----------------------------------------------------------------------

SQL>

以上提示信息表示:lisi用户拥有创建session和无限制使用表空间的权限。

18、管理员撤销lisi用户不受限制使用表的权限

SQL>revoke unlimited tablespace from lisi;

撤销成功。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!