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

目录

一、用户的创建与维护

1️⃣创建用户

2️⃣常用用户维护操作

二、权限管理详解

1️⃣权限的分类

2️⃣常用系统权限角色

3️⃣权限的授予与收回

<1>授予权限

<2>收回权限

<3>查询用户权限

三、口令管理(Profile)

[1️⃣Profile 的使用步骤](#1️⃣Profile 的使用步骤)

[<1>创建 Profile](#<1>创建 Profile)

[<2>应用 Profile 到用户](#<2>应用 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保障口令安全。初学者可从基础命令练起,逐步掌握用户与权限的精细化管理,为数据库操作打下坚实基础。

相关推荐
xhbh66614 分钟前
MySQL数据导出避坑指南:如何选择正确的工具并设计安全的备份策略?
数据库·mysql·oracle·程序员·mysql导出数据库
幻奏岚音19 分钟前
《数据库系统概论》第一章 初识数据库
数据库·算法·oracle
蜗牛~turbo26 分钟前
金蝶云星空 调价表取历史价格
java·数据库·sql·c#·database
jc062033 分钟前
4.1-中间件之Redis
数据库·redis·中间件
Elastic 中国社区官方博客34 分钟前
介绍 Python Elasticsearch Client 的 ES|QL 查询构建器
大数据·开发语言·数据库·python·elasticsearch·搜索引擎·全文检索
TG_yunshuguoji1 小时前
阿里云国际代理:云数据库RDS及上云方案
服务器·数据库·阿里云·云计算
FOLLOW ME3111 小时前
MySQL集群高可用架构
数据库·mysql·架构
TG_yunshuguoji1 小时前
阿里云国际代理:稳定、高效、便捷的数据库服务-云数据库RDS
运维·服务器·数据库·阿里云·云计算
danns8882 小时前
neo4j数据库创建范例(SQL文)
数据库·sql·neo4j
索迪迈科技2 小时前
欧拉24.03安装oracle11g的问题
oracle