Oracle创建用户并授权及不同用户访问表的设置
由于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
同义词表名 表所属用户名.表名
说明:同义词的设置不依赖第一种方式的授权,但仍然建议给予授权(在部分场景下进行存储过程的编写中,不给予授权会出现报错)