当前位置: 首页 > 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.lryc.cn/news/603953.html

相关文章:

  • 火山方舟使用豆包基模 —— 基础流程
  • 什么是ios企业签名?
  • ROUGE-WE:词向量化革新的文本生成评估框架
  • H.264视频的RTP有效载荷格式(翻译自:RFC6184 第5节 RTP有效载荷格式)
  • 自然语言处理NLP(3)
  • 烟草复杂包装识别准确率↑31%!陌讯多模态SKU检测算法在零售终端的实战解析
  • CMake 完全实战指南:从入门到精通
  • MySQL的JDBC编程
  • Seq2Seq学习笔记
  • 【绘制图像轮廓】——图像预处理(OpenCV)
  • idea运行tomcat日志乱码问题
  • CentOS安装ffmpeg并转码视频为mp4
  • 编程算法在金融、医疗、教育、制造业等领域的落地案例
  • 单片机(STM32-WIFI模块)
  • windows电脑如何截屏 windows电脑截屏教程汇总
  • 【机器学习深度学习】DeepSpeed框架:高效分布式训练的开源利器
  • Python Flask: Windows 2022 server SMB账户(共享盘账户)密码修改
  • 影刀RPA_初级课程_玩转影刀自动化_EXCEL操作自动化
  • 数据结构(5)单链表算法题(中)
  • 第二十二天(数据结构,无头节点的单项链表)
  • 期刊基础学习
  • 抵御酒店管理系统收银终端篡改攻击 API 加密的好处及实现——仙盟创梦IDE
  • 携全双工语音通话大模型亮相WAIC,Soul重塑人机互动新范式
  • BitMart 启动中文品牌“币市”:引领加密资产本地化发展新篇章
  • 【Linux】批量处理多个用户的 sudo 权限问题
  • 01背包问题:Python动态规划深度解析与工程实践
  • napping-1.0.1靶机练习
  • MySQL(配置)——MariaDB使用
  • 2025年Solar应急响应公益月赛-7月笔记ing
  • Java 10 新特性解析