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

[Oracle数据库] ORACLE的用户维护和权限操作

目录

一、用户的创建与维护

1️⃣创建用户

2️⃣常用用户维护操作

二、权限管理详解

1️⃣权限的分类

2️⃣常用系统权限角色

3️⃣权限的授予与收回

<1>授予权限

<2>收回权限

<3>查询用户权限

三、口令管理(Profile)

1️⃣Profile 的使用步骤

<1>创建 Profile

<2>应用 Profile 到用户

2️⃣删除 Profile

四、用户连接与退出常用命令

总结


对于 Oracle 数据库初学者来说,掌握用户管理和权限控制是入门的核心技能。本文将系统梳理 Oracle 用户创建、维护、权限分配及口令管理的关键操作,帮助你快速上手。

一、用户的创建与维护

1️⃣创建用户

创建用户的基本语法如下:

sql

create user 用户名 identified by 密码
[default tablespace 默认表空间 temporary tablespace 临时表空间];

例如创建用户firstuser

sql

create user firstuser identified by firstuser
default tablespace mydb temporary tablespace temp;

  • 参数说明:
    • identified by:指定用户登录密码;
    • default tablespace:用户默认存储数据的表空间(不指定则用系统默认);
    • temporary tablespace:用户临时数据的表空间(通常用temp)。

注意:新用户创建后默认没有任何权限,包括登录数据库的权限,需后续手动分配。

2️⃣常用用户维护操作

  • 修改密码:

    sql

    alter user 用户名 identified by 新密码;
    
     

    例:alter user firstuser identified by s;(将firstuser密码改为s

  • 修改表空间:

    sql

    alter user 用户名 default tablespace 新默认表空间 temporary tablespace 新临时表空间;
    
     

    例:alter user test default tablespace test temporary tablespace testtemp;

  • 删除用户:

    sql

    drop user 用户名 [cascade];
    
     
    • 若用户创建过表,必须加cascade(级联删除用户及所有对象);
    • 例:drop user firstuser cascade;
  • 锁定 / 解锁用户:

    • 锁定(禁止登录):alter user 用户名 account lock;(如alter user SCOTT account lock;
    • 解锁(允许登录):alter user 用户名 account unlock;

二、权限管理详解

1️⃣权限的分类

  • 系统权限:用户使用数据库的基础权限(如登录、创建表等),针对用户而言;
  • 对象权限:用户对其他用户的表、视图等对象的操作权限(如查询、修改),针对具体对象而言。

2️⃣常用系统权限角色

Oracle 通过 “角色”(预定义的权限集合)简化权限分配,核心角色包括:

  • DBA最高权限,可创建数据库结构、管理所有对象;
  • RESOURCE允许创建表、视图等实体,但不能创建数据库结构;
  • CONNECT仅允许登录数据库,无创建实体权限。

分配建议:

  • 普通用户:授予connect + resource
  • 管理员用户:授予dba + connect + resource

3️⃣权限的授予与收回

<1>授予权限
  • 授予角色权限:

    sql

    grant 角色1, 角色2... to 用户名;
    
     

    例:grant connect, resource to firstuser;(给firstuser登录和创建实体权限)

  • 授予对象权限:
    对其他用户的表 / 视图授权(如允许firstuser查询scottemp表):

    sql

    grant 操作类型 on 用户名.表名 to 目标用户;
    
     
    • 允许查询:grant select on scott.emp to firstuser;
    • 允许修改:grant update on scott.emp to firstuser;
    • 允许所有操作:grant all on scott.emp to firstuser;
  • 权限传递:若允许用户将权限转授他人,加with grant option

    sql

    grant select on scott.emp to firstuser with grant option;
    
<2>收回权限
  • 收回对象权限:revoke 操作类型 on 用户名.表名 from 用户名;
    例:revoke all on scott.emp from firstuser;(收回firstuseremp表的所有权限)

  • 收回角色权限:revoke 角色 from 用户名;
    例:revoke dba from userone;(收回useroneDBA权限)

<3>查询用户权限

通过数据字典查询用户拥有的权限:

sql

select * from dba_role_privs where grantee='用户名';

例:select * from dba_role_privs where grantee='SCOTT';(查询SCOTT的权限)

三、口令管理(Profile)

Profile是 Oracle 中用于设置口令规则和资源限制的工具(类似 “密码策略”),默认有DEFAULT配置(未指定时自动应用)。

1️⃣Profile 的使用步骤

<1>创建 Profile

定义具体规则,例如:

  • 限制登录尝试 3 次失败后锁定 2 天:

    sql

    create profile lock_account limit
    failed_login_attempts 3  -- 最大失败次数
    password_lock_time 2;    -- 锁定天数
    
  • 要求 10 天内必须改密码,宽限期 2 天(宽限期内可登录但会提醒):

    sql

    create profile myprofile limit
    password_life_time 10  -- 密码有效期
    password_grace_time 2; -- 宽限期
    
<2>应用 Profile 到用户

sql

alter user 用户名 profile 配置文件名;

例:alter user scott profile lock_account;(让scott应用lock_account规则)

2️⃣删除 Profile

sql

drop profile 配置文件名 [cascade];

  • 若 Profile 已分配给用户,需加cascade(级联解除关联)。

四、用户连接与退出常用命令

  • 切换用户:conn 用户名/密码 [as sysdba]as sysdba用于管理员登录)
    例:conn scott/tiger(切换到scott用户)
  • 注销当前用户:disc
  • 查询当前登录用户:show user

总结

Oracle 用户管理的核心是 “用户创建 - 权限分配 - 安全控制” 的流程:通过create user创建用户,用grant分配权限,借助Profile保障口令安全。初学者可从基础命令练起,逐步掌握用户与权限的精细化管理,为数据库操作打下坚实基础。

http://www.xdnf.cn/news/17688.html

相关文章:

  • 猫头虎AI分享:Excel MCP,让AI具备操作Excel表格|创建销售数据表、复制工作表、填充数据、写公式、绘制图表、调节颜色、添加透视表、保存为PDF
  • el-select如何获取到filterable过滤后的数据;el-select全选与filterable过滤组合使用;
  • Python 中使用多进程编程的“三两”问题
  • Gradle(三)创建一个 SpringBoot 项目
  • vue修改element的css属性
  • 8.13打卡 DAY 41 简单CNN
  • Android实现Glide/Coil样式图/视频加载框架,Kotlin
  • 前后端分离项目在云服务器的部署
  • vscode远程服务器出现一直卡在正在打开远程和连接超时解决办法
  • 通过限制网络访问来降低服务器被攻击风险的方法
  • Python uv的使用和配置
  • 《深入解析C++中的Map容器:键值对存储的终极指南》
  • Tigshop 跨境多语言多货币 JAVA / PHP 版本重磅更新v5.0.0发布
  • 友思特方案 | FPGA 加持,友思特图像采集卡高速预处理助力视觉系统运行提速增效
  • iscc2025区域赛wp
  • 下一代防火墙--NGAF
  • [Oracle数据库] Oracle的表维护
  • [系统架构]信息安全技术基础知识(三)
  • 101 201写完刷卡提示61是什么意思?
  • 数字货币的去中心化:重构价值交换的底层逻辑​
  • 使用 HTML5 Canvas 打造炫酷的数字时钟动画
  • 【从零开始java学习|第五篇】项目、模块、包、类的概念与联系
  • windows通过共享网络上网
  • 【LeetCode】4. 寻找两个正序数组的中位数
  • 教育元宇宙:一场重构教育生态的数字革命
  • 软件架构重构:从混沌到有序的系统性演进
  • Pycharm选好的env有包,但是IDE环境显示无包
  • Avalon-MM协议
  • MySQL 到 ClickHouse 明细分析链路改造:数据校验、补偿与延迟治理
  • React常见的Hooks