Oracle创建用户并授权及不同用户访问表的设置

Oracle数据库中的权限分为系统权限和对象权限,如创建表、删除权限等。用户需被授予角色(如connect、resource、dba)才能执行特定操作。创建、修改和删除用户涉及`CREATEUSER`、`ALTERUSER`、`DROPUSER`命令。为用户授权使用`GRANT`,撤销使用`REVOKE`。若要访问其他用户表,可通过授权或建立同义词,同义词不依赖于授权但在某些场景下仍建议授权。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于Oracle和其他数据库有些不同,当用户创建表后,其他用户无法直接访问,需要进行授权或进行同意词设置

oracle数据库的权限分为系统权限与对象权限

系统权限(database system privilege)

可以让用户执行特定的命令集。例如,create table权限允许用户创建表,grant any privilege权限允许用户授予任何系统权限。

对象权限(database object privilege)

可以让用户能够对各个对象进行某些操作。例如delete权限允许用户删除表或视图的行,select权限允许用户通过select从表、视图序列(sequences)或快照中查询信息

一、创建、删除用户

登录到system以创建其他用户

sqlplus /nolog

connect / as sysdba

创建用户以及设置密码

create user username identified by password;

修改用户

alter user username identified by password;

撤销用户

drop user username;

二、为用户授予角色\撤销授权

oracle提供三种标准角色(role):connect/resource和dba

connect(连接角色)

临时用户,特指不需要建表的用户,通常只赋予他们connect role.

connect是使用oracle简单权限,这种权限只对其他用户的表有访问权限,包括select、insert、update和delete等

拥有connect role的用户还能够创建表、视图序列(sequence)、簇(cluster)、同义词(synonym)、会话(session)和其他数据的链(link)

resourcerole(资源角色)

resource提供给用户另外的权限以创建他们的表、序列、存储过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)

dba(数据库管理员角色)

dba role拥有所有的系统权限

包括不限制 的空间限额和给其他用户授予各种权限的能力

为用户授权

grant connect,resource,dba to username;

撤销对用户赋予的权限

revoke connect,resource,dba from username;

访问其他用户创建的表,无法直接访问

有两种方式

1、授权

2、同义词

授权方式

登录创建该表的用户

grant select,insert,update,delete on tablename to username

权限名 需要授权的表 需要授权的用户

同义词

登录需要使用的用户

create synonym tablename for username.tablename

同义词表名 表所属用户名.表名

说明:同义词的设置不依赖第一种方式的授权,但仍然建议给予授权(在部分场景下进行存储过程的编写中,不给予授权会出现报错)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值