当刚新建立用户时,用户没有任何权限,也不能执行任何操作。

如果要执行某种特定的数据库操作,则必须为其授予系统权限

如果用户要访问方案的对象,则必须为其授予对象权限
对象权限

系统权限

是指执行特定类型Sql命令的权利,它用于控制用户可以执行的一个或是一组数据库操作。

Oracle 11G提供了200多种系统权限,可以查询数据字典视图system_privilege_map

显示所有系统权限

sql>select * from system_privilege_map order by name;

显示用户拥有系统权限

SQL> select grantee,privilege from dba_sys_privs where grantee=upper('tom');

常用的系统权限

权限名称 说明

create session 连接数据库

create view 创建视图

create procedure 创建过程、函数、包

create cluster 建簇

create table 创建表

create public synonym 创建同义词

create trigger 创建触发器

授权语法

GRANT 权限名 TO 用户|角色|PUBLIC

PUBLIC表示将权限赋给数据库中所有的用户

SQL>GRANT CREATE TABLE TO USER1;
SQL>GRANT CREATE TABLE,CREATE VIEW TO USER1,USER2 WITH ADMIN OPTION;

案例:

创建两个用户ken,tom,初始阶段他们没有任何权限,如果登录就会给出错误信息。

sql>create user ken identified by m123;
sql>create user tom identified by m123;

1)给用户ken授权

sql>grant create session,create table to ken with admin option;
sql>grant create view to ken;

2)给用户tom授权

可以通过ken给tom授权,因为with admin option是加上的。当然也可通过DBA给tom授权,我们测试就用ken给tom授权。

sql>grant create session,create table to tom with admin option;
sql>grant create view to tom ##这个会报错,因为Ken没有该权限的下放权限。

回收系统权限

系统权限不可以级联回收的

sql>revoke create session from ken;

回收了Ken的登录权限,Ken就不能再登录,虽然Ken下放的该权限给tom,但tom还是可正常登录的

文章来源:Oracle入门精读56-Oracle常见系统权限的使用与回收

最后修改:2023 年 10 月 29 日
如果觉得我的文章对你有用,请随意赞赏