zoukankan      html  css  js  c++  java
  • Oracle 用户管理

    Ø  简介

    本文介绍 Oracle 中的用户管理,包含以下内容:

    1.   概念介绍

    2.   系统用户

    3.   解锁 scott 用户

    4.   创建用户

    5.   用户相关案例

    6.   使用 Profile 管理用户口令

    7.   Oracle 的认证方式

    8.   重置管理员(sys)密码

     

    1.   概念介绍

    1)   Oracle 中可以创建多个 Database 实例,而每个实例下可以创建多个用户和表空间;

    2)   多个用户可以对同一个表空间进行管理;

    3)   一个数据库实例中的用户名不能重复;

     

    2.   系统用户

    当数据库服务器安装完成后,并创建数据库实例后,就会默认创建:syssystemscott 等用户。syssystem 用户具有对数据库操作的最高权限,以下是这三个用户的对比:

    用户

    描述

    默认密码

    角色

    sys

    1.   超级管理员用户(相当于 mssql samysql root);

    2.   具有 Oracle 的最高权限;

    3.   具有创建数据库的权限;

    4.   可以更改 system 或其他普通用户的密码。

    manager

    sysdba

    system

    1.   操作管理员用户;

    2.   权限仅次于 sys

    3.   没有创建数据库的权限,其他与 sys 相同;

    4.   可以更改 sys 或其他普通用户的密码。

    change_on_install

    sysoper

    scott

    1.   普通用户;

    2.   该用户默认是锁定的,可以用 system 去进行解锁;

    tiger

     

    注:一般数据库维护,使用 system 用户登录即可。

     


    3.   解锁 scott 用户

    scott Oracle 自带的一个普通用户,默认情况下该用户是被锁定的(不能登录),我们需要使用该用户时就需要进行解锁。下面是解锁步骤:

    1)   打开 cmd 命令终端

    2)   sqlplus /nolog

    3)   conn sys/syspwd as sysdba                     #使用 sys 超级管理员登录

    4)   alter user scott identified by tiger;   #修改密码(默认也是该密码)

    5)   alter user scott account unlock;        #解锁 scott 用户

    6)   conn scott/tiger

    注意:如果是 12c 或以上版本会提示:“ORA-01918: 用户 'SCOTT' 不存在”,则需要先添加该用户,运行脚本即可:SQL>@D:oracle12cproduct12.2.0dbhome_1 dbmsadminscott.sql

    clip_image002[1]

     

    4.   创建用户

    语法:

    create user learn identified by learnpwd

    [default tablespace ts_name]

    [temporary tablespace temp_ts_name]

    [quota 200m on ts_name];

    解释如下:

    identified by: 设置 learn 用户的登录密码;

    default tablespace: 指定该用户创建的表存放的表空间;

    temporary tablespace: 指定该用户创建的临时表存放的表空间;

    quota 200m on: 表名该用户创建的数据对象(表,索引,视图,pl/sql块)最大只能为200m

    1)   创建用户

    conn system/syspwd@orcl;  #SYSSYSTEM 用户登录,其他用户没有权限

    create user learn identified by learnpwd;

    或者(指定默认存放的表空间)

    create user learn identified by learnpwd default tablespace myts01;

     

    2)   删除用户

    drop user learn [cascade];

    cascaed 参数:表示级联删除。当删除的用户下没有数据对象(表、视图等)时,该参数可选;否则必须指定该参数。

     

    5.   用户相关案例

    learn 用户为例。

    1)   创建表

    create table stud(id number, name varchar(20));

     

    2)   创建并打开 SQL 脚本文件

    edit f:insert_stud.sql

    写入 insert 语句:

    insert into stud values(1, '张三');

    insert into stud values(2, '李四');

    commit;            #注意:一定要加提交命令

     

    3)   执行 SQL 脚本文件

    start f:insert_stud.sql

    select * from stud;

     

    4)   锁定用户

    alter user learn account unlock;

     

    5)   删除用户

    drop user learn cascade;

     

    6)   查询用户

    SELECT * FROM dba_users;                                  --查询所有用户

    SELECT * FROM all_users;                                  --查询所有用户

     

    6.   使用 Profile 管理用户口令

    我们可以把 Profile 理解为一个数据对象(文件或规则),使用 PL/SQL Developer system 用户登录,可以看到 Profiles 文件夹下已经有了默认的安全策略:

    clip_image003[1]

     

    1)   限制用户恶意登录

    语法:create profile profile_name limit failed_login_attempts 3 password_lock_time 2;

    解释:3表示最多允许3次尝试;2表示锁定的时间(天)

     

    案例:允许某用户最多尝试登陆3次,如果3次都登陆失败,则锁定该用户,并且锁定后2天内不允许登陆。

    1.   创建 Profile 对象

    create profile profile1 limit failed_login_attempts 3 password_lock_time 2;

    clip_image005[1]

    创建成后会在 Profiles 文件夹下多一个 profile1,编辑可以看到以上内容。

     

    2.   profile1 对象应用于指定用户

    alter user scott profile profile1;

    clip_image006[1]

    同样,可以看到该 Profile 应用的用户。

     

    3.   使用 scott 用户登录

    conn scott/tiger1@orcl;            #连续三次失败,将看到如下提示

    ORA-28000: the account is locked

     

    4.   然后,可以使用 system 用户进行解锁

    alter user scott account unlock;

     

    2)   限制口令的使用期限

    语法:create profile profile_name limit password_life_time 10 password_grace_time 2;

     

    案例:对某个用户的密码做出限制,最多使用10天,宽限期为2天,到时必须修改密码。

    1.   创建 Profile 对象

    create profile profile2 limit password_life_time 10 password_grace_time 2;

    clip_image007[1]

    创建成后会在 Profiles 文件夹下多一个 profile1,编辑可以看到以上内容。

     

    2.   profile2 对象应用于指定用户

    alter user scott profile profile2;

     

    3.   scott 用户 10天后登录(测试可以修改数据库服务器时间)

    conn scott/tiger@orcl;

    ORA-28002: the password will expire within 2 days #密码将在2天内过期

     

    4.   scott 用户 12天后登录(测试可以修改数据库服务器时间)

    conn scott/tiger@orcl;

    ORA-28001: the password has expired        #密码已过期

    clip_image008[1]

    提示:需要重新设置新密码,但前提是旧密码一定要正确

     

    3)   删除 Profile

    drop profile profile1 cascade;         #cascade 表示级联删除(有用户关联时)

     

    7.   Oracle 的认证方式

    Oracle 有两种认证方式:

    1.   操作系统认证

    类似于 SQL Server 中的以 Windows 方式登录。

    该认证方式只能登录到服务器中进行,直接认证操作系统登录用户是否隶属于 ora_dba 组中,该用户组表示为 Oracle DBA Group(即:数据库管理员),如图(计算机管理 -> 本地用户和组):

    clip_image010[1]

    Oracle 安装完成后,就会创建 ora_dbaoinstall 这两个组。所以,在服务器中登录,可以直接使用 as sysdba,而不会验证用户名和密码,该认证方式的用户称为特权用户。登录例如:

    conn abcdef/aaabbb@orcl as sysdba #错误的用户名和密码也能登录成功

     

    2.   数据库认证(用户密码认证)

    类似于 SQL Server 中以 sa(用户名) + 密码的方式登录,该认证方式的用户成为普通用户,登录例如:

    conn scott/tiger@orcl

     

    Ø  如何取消默认的操作系统认证?

    1.   打开 sqlnet.ora 文件,路径为:D:Oracleproduct11.2.0dbhome_1NETWORKADMIN

    2.   SQLNET.AUTHENTICATION_SERVICES= (NTS) 改为 SQLNET.AUTHENTICATION_SERVICES= (NONE) 即可。

    3.   再次尝试以 as sysdba 登录时,就和普通用户认证方式一样了,必须输入正确的用户名和密码才能登录成功。

     

    8.   重置管理员(sys)密码

    有时候我们有可能忘记了 Oracle 数据库的管理员(sys)的密码,这时我们该怎么重置呢?下面是具体的操作步骤:

    1)   Oracle 服务器的安装目录下搜索例如:pwdorcl,其中"orcl"表示需要管理员密码的数据库实例名。路径如下:

    D:Oracleproduct11.2.0dbhome_1databasePWDorcl.ora

    D:Oracleproduct11.2.0dbhome_1databasePWDCL01.ora

    注意:该文件是个加密文件,所以并不是打开后编辑的方式。clip_image012[1]

     

    2)   PWDorcl.ora(需要修改管理员密码的文件)备份后删除,因为下面的步骤将以新密码重置该文件。

    clip_image013[1]

    提示:如果缺失该文件,尝试再次登录将出现以下错误:

    ORA-01031: insufficient privileges      #权限不足

     

    3)   生成新的密码文件,打开 dos 窗口执行以下命令:

    C:UsersAdministrator>orapwd file=D:oracleproduct11.2.0dbhome_1databasePWDorcl.ora password=syspwd entries=10

    解释:password 表示新密码;entries 表示允许多少个客户端同时连接 Oracle 服务器。

     

    4)   重启 Oracle,使新密码生效。

     

    注意:另外,也可以登录 system 用户重置 sys 的密码,重置后同样会更新 PWDXXX.ora 文件。

  • 相关阅读:
    通过欧拉计划学Rust编程(第500题)
    通过欧拉计划学Rust编程(第54题)
    刷完欧拉计划中难度系数为5%的所有63道题,我学会了Rust中的哪些知识点?
    用欧拉计划学Rust编程(第26题)
    通过欧拉计划学习Rust编程(第22~25题)
    用欧拉计划学Rust语言(第17~21题)
    用欧拉计划学习Rust编程(第13~16题)
    用欧拉计划学Rust语言(第7~12题)
    通过欧拉计划学Rust(第1~6题)
    《区块链生存训练2.0》PDF
  • 原文地址:https://www.cnblogs.com/abeam/p/13439120.html
Copyright © 2011-2022 走看看