Oracle数据库-02用户创建与授权

1、用户类型

登录时可以选择的三种账户类型:sysdba,sysoper,normal 。

 

账户描述功能
sysdba数据库管理员打开数据库服务器,关闭数据库服务器备份数据库,恢复数据库日志归档,会话限制,管理功能,创建数据库
sysoper数据库操作员打开数据库服务器,关闭数据库服务器 备份数据库,恢复数据库日志归档,会话限制
normal普通用户任何权限(只有通过被授权之后才可以对数据库进行操作)

2、默认账户

用户名

密码

类型

描述

sys

安装时设置

sysdba, sysoper

级别最高的账户

sysdba

安装时设置

sysdba

级别最高的账户

system

安装时设置

normal

虽然是普通用户,但拥有dba角色

3、创建账户

3.1创建用户

sql格式:

CREATE USER 用户名 IDENTIFIED BY 密码;

例如:CREATE USER nowashing IDENTIFIED BY yujinxiang;

创建了一个用户,用户名是nowashing密码是yujinxiang。

3.2修改任意用户密码

sql格式:

ALTER USER 用户名 IDENTIFIED BY 密码;

例如:ALERT USER scott IDENTIFIED BY tiger;

将scott的密码修改为tiger。

3.3修改当前用户的密码

sql格式:

ALTER USER 用户名 IDENTIFIED BY 新密码 REPLACE 旧密码;

3.4删除用户 

sql格式:

DROP USER 用户名(CASCADE级联删除拥有对象)

例如:DROP USER nowashing;

删除掉nowashing这个用户,以及这个用户所拥有的所有的数据对象(权限,表,视图,存储过程……)。

3.5查询所有用户

SELECT * FROM all_users;

4、授权

4.1授权

sql格式:

GRANT 权限/角色列表 TO 用户名 [WITH ADMIN OPTION];

例如1:

GRANT dba TO nowashing;

授权dba角色给nowashing这个用户。

后续篇章将权限,角色统称为权限。

例如2:

权限或角色有多项用逗号分隔:

GRANT connect,resource,dba TO nowashing;

例如3:

被授权用户拥有此权限后是否可以再将此权限授予别人:

GRANT dba TO nowashing WITH ADMIN OPTION;

不加WITH ADMIN OPTION是不允许授予别人的。

例如4:

将某授权授予给所有用户:

GRANT 权限 TO PUBLIC;

4.2撤销授权

sql格式:

REVOKE 权限/角色列表 FROM 用户

例如:REVOKE  dba TO nowashing;

收回(撤消)dba角色从nowashing这个用户。

权限或角色有多项用逗号分隔:

REVOKE  connect,resource,dba TO nowashing

4.3查询已拥有的权限

SELECT * FROM dba_sys_privs; --查询所有用户和角色被授予的系统权限

SELECT * FROM user_sys_privs; --查询当前登录用户被授予的系统权限

SELECT * FROM user_role_privs—查询当前登录用户拥有的角色

4.4常见系统权限

系统权限: 允许用户执行特定的数据库动作,如创建表、创建索引、连接实例等。

对象权限: 允许用户操纵一些特定的对象,如读取视图,可更新某些列、执行存储过程等。

Oracle的系统权限有206种(SELECT * FROM system_privilege_map),以下仅列出常用的一些:

权限名称

描述

create session

连接到数据库

create sequence

创建序列

create synonym

创建同义词

create public synonym

创建公用的同义词

create table

创建表

create any table

在任何模式中创建表

drop table

删除表

drop any table

删除任何模式中的表

create procedure

创建存储过程

execute any procedure

运行任务模式中的存储过程

create user

创建用户

alter user

修改用户

drop user

删除用户

create view

创建视图

模式(schema):是某个用户拥有所有对象的集合。

4.5常见的系统角色

角色名称

拥有权限

dba

所有权限

connect

create session 连接到数据库

alter session --修改会话
create sequence --建立序列
create synonym --建立同义词
create view --建立视图

create cluster --建立聚簇
create database link --建立数据库链接

resource

create trigger--建立触发器

create sequence  --建立序列

create procedure --建立存储过程

create cluster --建立聚簇

create operator  --建立操作员

create index --建立索引

create indextype --建立索引类型

create table --建立表

4.6对象权限

所谓的对象指的是:表,视图,索引,同义词,存储过程,触发器,序列……

  • 不同的对象具有不同的对象权限
  • 对象的拥有者拥有所有权限
  • 对象的拥有者可以向外分配权限

对象权限

视图

序列

过程

查询(select)

插入(insert)

更新(update)

删除(delete)

修改(alter)

索引(index)

关联(references)

执行(execute)

4.6.1授予权限

sql格式:

GRANT 权限列表 ON 对象名 TO 用户名 [WITH GRANT OPTION]

例1,授予郁金香这个用户,向学生表查询,插值,修改,删除的权限:

GRANT select ,insert,update,delete,execute ON t_student TO yujinxiang;

例2,向数据库中所有用户分配权限:

GRANT select ON dept TO PUBLIC;

4.6.2授予部分字段权限

sql格式:

GRANT 权限名称 (字段列表)  ON 对象名 TO 用户名 [WITH GRANT OPTION]

例如,授予郁金香这个用户,修改学生表学生姓名,学生年龄的权限:

GRANT update (stu_namestudent_age)  ON t_student TO yujinxiang;

4.6.3查询已拥有权限

sql格式:

SELECT * FROM user_tab_privs_made  --查询授出去的对象权限(通常是属主自己查)

SELECT * FROM user_tab_privs_recd,SELECT * FROM user_tab_privs --查询当前用户拥有的对象权限

4.6.4撤销权限

sql格式:

REVOKE 权限列表 ON 对象名 FROM 用户名;

例1,撤消授予郁金香这个用户,向学生表查询,插值,修改,删除的权限:

REVOKE select ,insert,update,delete,execute ON t_student FROM yujinxiang;

例2,撤消授予郁金香这个用户,修改学生表学生姓名,学生年龄的权限:

REVOKE update ON t_student FROM yujinxiang;

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值