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

发布于:2025-08-14 ⋅ 阅读:(17) ⋅ 点赞:(0)

目录

一、用户的创建与维护

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


网站公告

今日签到

点亮在社区的每一天
去签到