2021-05-03


目录

一、前言

二、使用步骤

1.创建用户

2.给用户修改密码

3.删除用户

4.用户管理综合案例

5.数据库中权限的分类

6.使用profile管理用户口令

7.Oracle数据库启动流程

8.管理员密码丢失解决办法

三、总结



一、前言

此博客主要关于Oracle用户的创建、给用户修改密码、删除用户、用户管理综合案例、数据库的两个权限【系统权限和对象权限】以及使用profile管理用户口令。

二、使用步骤

1.创建用户

注:具有DBA(数据库管理员)的权限才能使用哦!

create user 用户名 identified by 密码;
创建一个用户AAA

2.给用户修改密码

概述:如果给自己修改密码可直接使用

1)给自己修改密码:sql>password

2)给别人修改密码:sql>password 用户名  【注:必须是SYS或SYSTEM用户才可以帮别人修改】

password只能在Oracle自带的工具里面使用,如sqlplus,在PL/SQL developer中不好使

3)在所有ORACLE管理工具中修改密码:alter user 用户名 identified by 密码;

2021-05-03_第1张图片 修改用户密码两种方式

3.删除用户

概述:一般是以dba的身份去删除某个用户,如果用其他用户去删除用户则需要具有drop user的权限

drop user 用户名 [cascade]  

cascade表示级联删除它所创建的所有对象(比如表)

删除用户AAA

4.用户管理综合案例

概述:创建的新用户是没有任何权限的,甚至连登录的数据库的权限都没有,需要为其指定相应的权限。给一个用户赋权限使用命令grant,回收权限使用命令 revoke。

授予权限基本语法:grant 权限/角色 to 用户;

回收权限基本语法:revoke 权限/角色 from 用户;

2021-05-03_第2张图片 对用户AAA进行权限的授予与撤销

 

5.数据库中权限的分类

数据库中有两种权限:系统权限和对象权限

Ⅰ.系统权限:用户对数据库的权限,比如创建数据库,创建表。系统权限中有一个create session权限,每个用户必须拥有了该权限后才能登陆数据库,当新建一个用户时,是无法直接登陆数据库的。

     例如:用SYS用户登陆数据库创建一个用户AAA时,此时AAA用户不能登陆数据库,因为没有登陆权限,只有SYS把登陆权限给了AAA才能登陆,解决方法有如下:

     ①sql>grant create session to AAA; 

     ②sql>grant connect to AAA;     //connect是预定义角色,拥有create session权限

     ③sql>grant sysdba to AAA;     //sysdba是预定义角色(数据库管理员),拥有所有权限

     此时AAA用户就可以成功登陆到数据库了。

     resource角色有在表空间创建表的权限,如sql>grant resource to AAA;  //用户AAA可以创建表了

2021-05-03_第3张图片 给用户AAA授权登陆的权限 2021-05-03_第4张图片 授予resource角色权限,可以在表空间创建表

 

Ⅱ.对象权限:用户对其他用户的数据对象操作的权限,比如在表中数据进行查询、插入、修改和删除等。

    常用的对象权限有:alter 修改  delete  删除  select  查询    insert 添加    update 修改  index  索引  references 引用 execute 执行

    ①权限的授予

        加入希望用户AAA去访问SCOTT的EMP表,首先需要授权,授权方法有如下两种:

        a)以scott登陆:sql>grant select(或insert、update、delete、all) on emp to AAA;

        b)以SYS或SYSTEM登陆:sql>grant select(或insert、update、delete、all) on scott.emp to AAA;

        此时就可以访问scott的emp表了,当用户AAA登陆后,可以使用sql>select * from scott.emp;//记得查询不在此用户的表时,需要加前缀。

2021-05-03_第5张图片 对scott的emp的查询权限授予用户AAA

     ②权限的回收

          语法格式:sql>revoke ... on [scott.]emp from AAA;

          注意:谁授予AAA的权限就由谁收回,别人是无法收回的,但是DBA有权收回任何用户的。

将用户AAA对scott的emp表的查询权限收回

      ③with grant option(只应用与对象权限):允许被授权用户再继续把该权限传递给其他用户,并且回收权限时是级联收回。

2021-05-03_第6张图片 将对scott的emp表的select权限级联授权

          回收权限是级联收回,这是与下面介绍的with admin option的不同之处:

2021-05-03_第7张图片 system对表scott.emp的select权限进行收回

         ④with admin option(只应用于系统权限):也是允许被授权用户往下传递权限。但是权限回收时不是级联回收。

2021-05-03_第8张图片 系统权限级联授予resource权限

                       注意:当system回收用户AAA的resource权限后,不会级联回收,而是只回收AAA的该权限;用户BBB和用户CCC仍然可以创建表。

2021-05-03_第9张图片 系统权限回收resource权限

 

6.使用profile管理用户口令

概述:profile是口令限制、资源限制的命令集合,当建立数据时,Oracle会自动建立名称为default的profile;当建立用户没有指定profile选项,那么Oracle会将default分配给用户。

(1) 账户锁定

     概述:指定该账户(用户)登陆时最多可以输入密码的次数,也可以指定用户锁定的时间(天),一般用dba的身份去执行命令。

     例:指定AAA这个用户最多只能尝试3次登陆,锁定时间为2天,接下来实现这个条件:

             Ⅰ.创建profile文件

                   sql>create profile lock_account limit failed_login_attempts 3 password_lock_time 2;

                   sql>alter user AAA profile  lock_account;

2021-05-03_第10张图片 为用户AAA创建profile

                接下来查看一下效果,登陆AAA用户连续输入三次错误密码直接将该用户锁定,即使第四次你输入正确的密码都无法登陆哦! 

2021-05-03_第11张图片 演示AAA用户被锁定的效果

(2)给账户(用户)解锁

          sql>alter user AAA account unlock;  【AAA为解锁的用户名】

2021-05-03_第12张图片 解锁用户AAA

 

 (3)终止口令

          概述:为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要dba身份来操作。 

          例:给前面创建的用户AAA创建一个profile文件,要求该用户每隔10天要修改自家的登陆密码,宽限期为2天:

                1)建立profile文件

                   sql>create profile AAA_profile limit password_life_time 10 password_grace_time 2;

                2)分配给某个用户

                   sql>alter user AAA profile AAA_profile;

2021-05-03_第13张图片 给用户AAA设置终止口令

 

(4)口令历史

          概述:如果希望用户再修改密码时,不能使用以前使用过的密码,可使用口令历史,这样Oracle会将口令修改的信息存放到数据字典中,这样当用户修改密码时,Oracle就会对新旧密码进行比较,当发现新旧密码一样时,就提示用户重新输入密码。

           例:给用户AAA创建一个profile文件password_history,要求该用户每隔10天要修改自己的登陆密码,宽限期为2天,并且不能使用以前使用过的密码:

               1)建立profile

                     sql>create profile password_history limit password_life_time 10 password_grace_time 2 password_reuse_time 10;   

                    // password_reuse_time:单位为天,说明在指定的天数之内,设定的密码不能重复

                2)分配给某个用户

                      sql>alter user AAA profile myprofile;

给用户AAA创建历史口令

(5)删除profile

         概述:当不需要某个profile文件时,可以删除这个文件。

         注:如果profile指定了用户需要级联删除,cascade

语法格式:
sql>drop profile profile文件名 [cascade]
删除profile文件

          

7.Oracle数据库启动流程

Oracle启动流程-Windows下

1)Isnrctl start(启动监听)

2)oradim -startup -sid 数据库实例名、

当然,可以搜索任务管理器-服务-找到Oracle那里直接点击运行即可啦!

Oracle启动流程-Linux下

1)Isnctl start (启动监听)

2)  sqlplus  sys/change_on_install   as sysdba (以sysdba 身份登录,在oracle10g后可以这样写)

     sqlplus  /nolog 

     conn  sys/change_on_install as sysdba

3)  startup   

8.管理员密码丢失解决办法

   恢复办法:把原有密码文件删除,生成一个新的密码文件。

恢复步骤:

         1)搜索名为PWD数据库实例名.ora文件

         2)删除该文件,为预防万一,建议备份

         3)生成新的密码文件,在dos控制台下输入命令:

               orapwd file=原来密码文件的全路径\密码文件名.ora password=新密码 entries=10;//entries:允许几个特权用户

         注:密码文件名一定要和原来的密码文件名一样。


三、总结

以上介绍了Oracle用户管理的使用,包括用户的创建、给用户修改密码、删除用户、用户管理综合案例、数据库的两个权限【系统权限和对象权限】以及使用profile管理用户口令。

注意:当出现权限不足问题时,使用show user查看当前所处用户是谁,一般需要管理员dba才能执行一些权限。

 

 

你可能感兴趣的:(oracle数据库,oracle)