当前位置: 首页 > news >正文

ORACLE的用户维护与权限操作

1 创建和维护用户

sql语句中,不区分大小写,但是值区分大小写(单引号中的内容)

1.1 创建用户

  • 语法:create user 用户名 identified by 密码;

此时用户创建成功后,没有任何权限,包括登录数据库。

  • 示例:
# 创建用户firstuser密码为firstuser
create user firstuser identified by firstuser;

1.2 更改用户密码

  • 语法:alter user 用户名 identified by 新密码;

  • 示例:

# 将firstuser用户密码修改为userfirst
alter user firstuser identified by userfirst;

1.3 删除用户

  • 语法:drop user 用户名 [cascade]

如果要删除的用户已经创建了表,那么就需要在删除的时候带参数cascade。

  • 示例:
drop user firstuser;

1.4 锁定用户

  • 语法:alter user 用户名 account lock;

将用户锁定后不能登录

  • 示例:
# 锁定scott用户
alter user scott account lock;
# 登录失败,提示账户已锁定
conn scott/tiger;

1.5 解锁用户

  • 语法:alter user 用户名 account unlock;

  • 示例:

# 解除scott用户的锁定状态
alter user scott account unlock;
# 登录scott用户		connect可以简写成conn
connect scott/tiger;
# 查看当前用户
show user;
# 返回之前的用户
conn sys/Oracle11g as sysdba;

1.6 更改用户表空间-无

2 用户权限维护

2.1 什么是权限

权限就是指由管理员赋予某个用户能够进行某个操作的权力。

比如赋予用户firstuser登录、建表的权限。

2.2 权限分类

系统权限(用户登录,创建对象):系统规定用户使用数据库的权限。(系统权限是对用户而言)。

对象权限(操作指定对象的某种权限):某种权限用户对其它用户的表或视图的存取权限(对象权限是针对表或视图而言的)。

2.3 常用系统权限角色

DBA: 拥有全部特权,是系统最高权限,可以登录用户、创建表、创建库。

RESOURCE:普通用户权限,只能创建表、不能创建库。

CONNECT:只可以登录Oracle。

对于普通用户:授予connect, resource权限。
对于DBA管理用户:授予dba、connect,resource权限。

2.4 权限的赋予

需要使用高权限用户登录(如system、sys、scottas sysdba 用户等)

根据需要赋予、收回相应权限

2.4.1 系统权限的赋予

  • 语法:grant 权限1,权限2 to 用户名

  • 示例:

# 创建用户
create user xykj identified by zzh;
# 赋权
grant dba to xykj;
# 登录
conn xykj/zzh;
# 查看其它用户的表
select * from scott.emp;
# 查看权限
select * from dba_role_privs where GRANTEE='XYKJ';
# 创建用户
create user xykj1 identified by zzh;
# 赋权
grant resource,connect to xykj1;
# 登录
conn xykj1/zzh;
# 查看其它用户的表	权限不同提示表不存在
select * from scott.emp;
# 查看权限	权限不足,提示不存在
select * from dba_role_privs where GRANTEE='XYKJ1';

2.4.2 对象权限的赋予

需要高权限用户

  • 对象的权限:

select:查询权限
insert:插入数据权限
delete:删除行权限
update:修改行内容权限
all:所有权限

  • 语法:grant 权限 on 用户.表 to 用户;

  • 示例:

--查询失败,没有权限
conn xykj1/zzh;
select * from scott.emp;
--赋予查询权限
conn xykj/zzh;
grant select on scott.emp to xykj1;
conn xykj1/zzh;
select * from scott.emp;
--赋予修改权限
conn xykj/zzh;
grant update on scott.emp to xykj1;
conn xykj1/zzh;
update scott.emp set sal=1400 where empno=7934;
select * from scott.emp;
--收回修改权限
conn xykj/zzh;
revoke select on scott.emp from xykj1;
revoke update on scott.emp from xykj1;

2.4.3 对象权限的传递

  • 语法:grant select on 用户.表 to 用户 with grant option;
  • 示例:
--高权限用户赋予xykj1用户查询权限,允许权限传递
conn xykj/zzh;
grant select on scott.emp to xykj1 with grant option;
conn xykj1/zzh;
select * from scott.emp;
--xykj1用户通过权限传递,赋予xykj2用户查询权限
grant select on scott.emp to xykj2;
conn xykj2/zzh;
select * from scott.emp;
--当xykj1的权限被收回时,xykj2的权限也会被自动收回
conn xykj/zzh;
revoke select on scott.emp from xykj1;
conn xykj1/zzh;
select * from scott.emp;
conn xykj2/zzh;
select * from scott.emp;

2.5 查询用户拥有权限

可以从数据字典(系统表)中查询用户拥有的权限。

  • 语法:select * from dba_role_privs where GRANTEE=‘用户名’;
  • 注意事项

需要dbs权限
所有的用户名必须大写

  • 示例:
select * from dba_role_privs where GRANTEE='xykj';
select * from dba_role_privs where GRANTEE='XYKJ';

2.6 权限的收回

2.6.1 系统权限的收回

需要高权限用户

  • 语法:revoke 权限 from 用户名;

  • 示例:

# 收回xykj1的resource权限
revoke resource from xykj1;
# 查看xykj1的权限
select * from dba_role_privs where GRANTEE='XYKJ1';

2.6.2 对象权限的收回

  • 语法:revoke 权限 on 用户.表 from 用户;
  • 示例:
revoke select on scott.emp from xykj1;
revoke update on scott.emp from xykj1;

3 管理用户口令

3.1 Profile概述

Profile是口令限制,资源限制的命令集合,当建立数据库时,ORACLE会自动建立名字为DEFAULT的Profile。当建立用户没有指定Profile选项,那么ORACLE就会将DEFAULT分配给用户。

Profile就是数据库设定的操作限制,类似于ATM机的3次密码错误就吞卡一类的规则。

3.2 Profile使用步骤

3.2.1 创建profile

  • 指定scott用户最多只能尝试3次登录操作,锁定时间为2天
--建立profile及规则
create profile lock_account
limit failed_login_attempts 3
password_lock_time 2;
--将profile 赋予scott 用户
alter user scott profile lock_account;
conn scott/tige;
--登录3次错误,账户被锁定,正确密码也无法登录
conn scott/tiger;
--想要登录需等待两天后,或手动解锁
conn xykj/zzh;
alter user scott account unlock;
conn scott/tiger;
  • 要求用户每10天要修改登录密码,宽限期为2天
create profile myprofile
limit password_life_time
10 password_grace_time 2;

3.2.2 删除prodile

--删除名为myprofile的口令
drop profile myprofile cascade

3.3 用户连接和退出

  • 切换用户:conn 用户/密码 [as sysdaba];
conn scott/tiger;
  • 注销当前用户
disc;
  • 查询当前用户
show user;
http://www.dtcms.com/a/305057.html

相关文章:

  • 车载刷写架构 --- 整车刷写中为何增加了ECU 队列刷写策略?
  • 激光雷达/相机一体机 时间同步和空间标定(1)
  • [leetcode] 电话号码的排列组合
  • elememtor 添加分页功能
  • GaussDB 约束的语法
  • 互联网前沿新技术
  • 老年护理实训室建设方案:打造安全、规范、高效的实践教学核心平台
  • win10更新异常,导致Microsoft Store 无法正常启用,无法正常安装exe应用程序。
  • Mqttnet的MqttClientTlsOptions.CertificateValidationHandler详解
  • yolov11的简单实例
  • Python爬虫03_Requests破解百度翻译
  • 7、如何管理昵称重复?
  • claudia for claude code
  • ITIL 4 高速IT:解耦架构——构建快速迭代的技术基座
  • 电商修图,尺寸修改适配各大电商平台
  • Elasticsearch 从入门到精通:术语、索引、分片、读写流程与面试高频题一文搞懂
  • 青少年软件编程图形化Scratch等级考试试卷(四级)2025年6月
  • SZU大学物理实验报告|电位差计
  • 赋能低空未来|迪捷软件亮相2025国际低空经济博览会
  • 【tips】小程序css ➕号样式
  • Three.js 性能优化全面指南:从几何体合并到懒加载资源
  • OpenLayers 综合案例-台风风场模拟
  • MIAOYUN参编信通院《大模型API服务性能测试标准》
  • 营销活动效果分析与策略优化
  • 【JVM】常见的 Java 垃圾回收算法以及常见的垃圾回收器介绍及选型
  • ARM7微处理器的核心优势
  • Docker入门基础使用
  • 【vue(2)插槽】
  • ZKmall开源商城中台架构实践:API 网关与服务治理如何撑起电商技术骨架
  • vue3实战九、vue3+vue-cropper实现头像修改