oracle数据库管理--用户管理

时间:2023-03-08 22:55:22
oracle数据库管理--用户管理

一、oracle数据库用户管理
1、sys和system用户区别
(1)存储的数据的重要性不同:


       sys所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。sys用户拥有dba,sysdba,sysoper等角色或权限,具有create database权限,是oracle权限最高的用户;

system用户用于存放次一级的内部数据,如oracle的一些特性或工具的管理信息。无create database权限,system用户拥有普通dba角色权限。


(2)权限的不同:

       sys用户必须以as sysdba 或 as sysoper形式登录,不能以normal方式登录数据库;

       system如果正常登录,它其实就是一个普通的dba用户,但是如果以as sysdba登录,其结果实际上它是作为sys用户登录的,

       sys用户具有“SYSDBA”或者“SYSOPER”系统权限,不能用normal,

登陆数据库:

       sys用户登陆:conn sys/change_on_install as sysdba

       systeme用户登陆:conn system/manager


(3)sysdba和sysoper两个系统权限区别

       sysdba拥有最高的系统权限,登陆后是 sys

       sysoper主要用来启动、关闭数据库,sysoper 登陆后用户是 public

       sysdba和sysoper属于system privilege,也称为administrative privilege,拥有例如数据库开启关闭之类一些系统管理级别的权限sysdba和sysoper具体的权限可以看下表:

oracle数据库管理--用户管理

2、用户管理
(1)创建用户:

       一般是具有DBA(数据库管理员)的权限才可以创建用户
eg:SQL> create user ***(用户名) identified by ***(密码)
其中,密码必须以字母开头。此时,创建的新用户是没有任何权限的,甚至连登录数据库的权限都没有,需要为其指定相应的权限
赋予权限:grant
回收权限:revoke
eg:SQL> grant connect to ***(用户名)
其中,拥有connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。此时,该用户并无表空间,无法创建表,应赋予resource角色。
eg:SQL> grant resource to ***(用户名)
关于权限方面的知识,后续补上。
(2)修改密码
A、如果给自己修改密码
eg:SQL> password ***(新密码)
B、如果别其他用户修改密码则需要DBA权限,或者拥有alter user的系统权限
eg:SQL> alter user ***(用户名) identified by ***(新密码)
(3)删除用户
      以DBA的身份去删除某个用户,如果用其他用户去删除用户则需要具有drop user 的权限,不能删除自己。在删除用户时,注意,如果要删除的用户已经创建了表,那么就需要在删除的时候带一个参数cascade
eg:
SQL> drop user 用户名;  //用户没有建任何实体
SQL> drop user 用户名 CASCADE;  // //加上cascade则将用户连同其创建的东西全部删除

3、使用profile管理用户口令

        概述:profile是口令限制,资源限制的命令集合,当创建数据库时,oracle会自动建立名称为default的profile。当建立用户没有指定profile选项,那oracle就会将default分配给用户。
(1)、帐户锁定:指定该用户登录时最多可以输入密码的次数,也可以指定用户锁定的时间,一般用dba的身份去执行该命令
eg: 指定scott这个用户最多只能尝试3次登陆,锁定时间为2天
创建profile文件
sql>create profile lock_accout(profile文件名) limit failed_login_attempts 3 password_lock_time 2;
sql>alter user scott profile lock_account;
eg:
sql>conn system/manager
sql>create profile aaa1 limit failed_login_attempts 3 pawword_lock_time 2
sql>alter user xiaoming profile aaa1;

(2)给帐户解锁
sql>alter user xiaoming account unlock

(3)终止口令:为了让用户定期修改密码可以使用终止口令的指令来完成,需要dba身份来操作。
eg:给前面创建的用户xiaoming创建一个profile文件,要求该用户每隔10天要修改自家的登陆密码,宽限期为2天
sql>create profile myprofile limit password_life_time 10 password_grace_time 2;
sql>alter user xiaoming profile myprofile

(4)口令历史:如果希望用户在修改密码时,不能使用以前使用过的密码,可使用口令历史,这样oracle就会将口令修改成信息存放到数据字典中,这样当用户修改密码时,oracle就会对新旧密码进行比较,当发现新旧密码一样时,就提示用户重新输入密码。
eg:
1)建立profile
sql>create profile password_history limit password_life_time 10 password_grace_time 2 password_reuse_time 10
password_reuse_time //指定口令可重用时间即10天后就可以重用
 删除profile
sql>drop profile password_history [cascade]