Oracle基础入门--(用户、角色、权限)

Oracle数据库开发的步骤:

1) 创建一个表空间

2) 创建用户,并且给用户访问的表空间

3) 授予权限      --> 前3步: 在实际开发中: DBA分配的

4) 创建表(约束)       --> 4,5,6 作为重点

5) 添加数据

6) 修改,删除,查询数据

用户

 Oracle提供了三个用户:

  1. SYS用户:超级管理员,权限最高,它的角色是DBA(数据库管理员)。默认密码是change_on_install。具有创建数据库的权限。
  2. SYSTEM用户:系统管理员,权限很高,它的角色是DBA operator(数据库管理员操作者),默认密码manager。不具有创建数据库的权限!
  3. 普通用户(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;
原文地址:https://www.cnblogs.com/64Byte/p/12693290.html