Oracle基础入门--(用户角色权限)
Posted 64Byte
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle基础入门--(用户角色权限)相关的知识,希望对你有一定的参考价值。
Oracle数据库开发的步骤:
1) 创建一个表空间
2) 创建用户,并且给用户访问的表空间
3) 授予权限 --> 前3步: 在实际开发中: DBA分配的
4) 创建表(约束) --> 4,5,6 作为重点
5) 添加数据
6) 修改,删除,查询数据
用户
Oracle提供了三个用户:
- SYS用户:超级管理员,权限最高,它的角色是DBA(数据库管理员)。默认密码是change_on_install。具有创建数据库的权限。
- SYSTEM用户:系统管理员,权限很高,它的角色是DBA operator(数据库管理员操作者),默认密码manager。不具有创建数据库的权限!
- 普通用户(normal),如系统安装时的scott用户,默认密码是tiger。普通用户的权限是SYS用户或SYSTEM用户给的,如果没有给,那普通用户连很基本的访问权限,连接权限也没有。
oracle内部有两个建好的用户:system和sys。用户可直接登录到system用户以创建其他用户,因为system具有创建别 的用户的 权限。 在安装oracle时,用户或系统管理员首先可以为自己建立一个用户。
语法[创建用户]:
create user 用户名 IDENTIFIED by 密码 DEFAULT TABLESPACE 默认表空间 --如果没有写, 默认访问的users表空间 TEMPORARY TABLESPACE temp; --访问的临时表空间, 都是要temp,不写默认temp
例子:
CREATE USER zhangsan IDENTIFIED BY 123 DEFAULT TABLESPACE mytest TEMPORARY TABLESPACE temp;
语法[更改用户]:
alter user 用户名 IDENTIFIED BY 新密码;
例子:
alter user zhangsan identified by 888;
语法[删除用户]:
drop user 用户名 cascade;
例子:
--注意: 不能删除在线用户 --如果这个用户已创建其他的数据库对象(表,...), 需要使用CASCADE关键字, 把这个用户创建所有的东西也删除 drop user zhangsan; drop user zhangsan cascade;
常用的角色(role)
一个角色包含多个权限
- connect:允许用户创建会话权限
- resource:允许用户对表进行增,删,改,查的权限
- dba: 系统管理员的角色, 所有的权限都有
讲解三种标准角色:
1》.connect role(连接角色)
--临时用户,特指不需要建表的用户,通常只赋予他们connect role.
--connect是使用oracle简单权限,这种权限只对其他用户的表有访问权限,包括select/insert/update和delete等。
--拥有connect role 的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym)、回话(session)和其他 数据的链(link)
2》.resource role(资源角色)
--更可靠和正式的数据库用户可以授予resource role。
--resource提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。
3》 dba role(数据库管理员角色)
--dba role拥有所有的系统权限
--包括无限制的空间限额和给其他用户授予各种权限的能力。system由dba用户拥有
授权命令
grant connect, resource to 用户名;
撤销权限
revoke connect, resource from 用户名;
创建/授权/删除角色
除了前面讲到的三种系统角色----connect、resource和dba,用户还可以在oracle创建自己的role。用户创建的role可以由表或系统权限或两者的组合构成。为了创建role,用户必须具有create role系统权限。
1》创建角色
语法: create role 角色名;
例子: create role testRole;
2》授权角色
语法: grant select on class to 角色名;
列子: grant select on class to testRole;
注:现在,拥有testRole角色的所有用户都具有对class表的select查询权限
3》删除角色
语法: drop role 角色名;
例子: drop role testRole;
注:与testRole角色相关的权限将从数据库全部删除
权限
1、系统权限:
创建数据对象 create table, 删除数据对象 drop table,修改数据对象 alter table, 登录数据库 create session
2、对象权限:
把用户下的某个对象(表, 存储过程..)的增(insert)删(delete)改(update)查(select)权限 all(所有对象权限)
授予权限
授予权限: 角色高(执行的sql语句的用户)给角色低的授予 -- grant 权限1,权限2,权限3/角色... to 用户 --授予对象权限 grant dba to zhangsan; --授予zhangsan用户,查询scott用户下emp表的权限 grant select on scott.emp to zhangsan; --授予zhangsan用户,对scott用户下emp表的增删改查权限 grant all on scott.emp to zhangsan;
撤销权限
--撤销权限 revoke 权限1,权限2,.... form 用户; --撤销对象权限 revoke dba from zhangsan; --撤销zhangsan用户,查询scott用户下emp表的权限 revoke select on scott.emp from zhangsan; --撤销zhangsan用户,对scott用户下emp表的增删改查权限 revoke all on scott.emp from zhangsan;
以上是关于Oracle基础入门--(用户角色权限)的主要内容,如果未能解决你的问题,请参考以下文章