oracle用户管理
给DBMS系统用户解锁:
1.先用system用户登录
2.解锁用户命令的基本语法:
ALTER USER 用户名 ACCOUNT UNLOCK;
一、sqlplus常用命令
1.show user:显示当前连接的用户名
2.connect:登录连接,而且还可以切换不同的用户登录
3.disconnect:断开连接,但并不退出sqlplus窗口
4.password:修改用户密码,前提是必须拥有高级用户的权限(system/sys)
修改自己的密码可以省去用户名。
忘记密码后,重置密码:
alter user 用户名 identified by 新密码;
5.exit:退出当前用户并且关闭sqlplus窗口
6.linesize:用于控制每行显示多少个字符,默认显示80个字符
用法:set linesize 字符
7.pagesize:用于控制每页显示多少行,默认显示14行
用法:set pagesize 每页显示的行数
二、oracel用户管理
需求:假设你是oracle管理员,当你一个同事入职,你需要为他分配一个帐号。
创建用户:(需要具有DBA管理权限)
语法:create user 用户名 identified by 密码;(密码不能以数字开头)
为什么刚创建好的用户无法正常登录?
这是因为oracle刚刚创建的用户是没有任何权限的,需要管理员给用户分配 相应的权限才能正常登录。
如何给用户分配权限呢?
基本语法:grant 权限/角色 to 用户名;
举例说明:如给一个刚刚创建好的用户一个正常登录的权限。
grant connect to scott;
oracle用户管理机制
create user xiaoming identified by m123;
default tablespace users
temporary tablespace temp
quota 3m on users;(用户建立的数据对象(表、索引、视图、pl/sql块))最大只能是3m
综合案例:
创建 一个用户xiaohong,然后给他分配两个角色,可以让xiaohong登录、创建表、操作(crud)自己创建表,然后回收角色,最后删除用户。
1.使用system创建xiaohong
create user xiaohong identified by m123;
2.给xiaohong分配两个常用的角色
grant connect to xiaohong;
grant resource to xiaohong;
3.让xiaohong登录
connect xiaohong/m123
4.给xiaohong修改密码
alter user xiaohong identified by m111;
5.让xiaohong创建一张表
create table students(id,name);
6.使用system登录,回收角色
connect system/oracle
revoke connect from xiaohong
revoke resource from xiaohong
7.删除用户
drop user xiaohong
注意:当我们删除一个用户的时候,如果这个用户自己已经创建过数据对象,那么我们在删除用户的时候,需要加选项cascade,表示把这个用户删除的同时,也把该用户所创建的数据对象一并删除。
方案(schema)
理解:当一个用户创建好后,如果该用户创建了任意一个数据对象,这时我们的dbms会创建一个对应的方案与该用户对应,并且该方案的名字与用户名一致。
小技巧:如果希望看到某个用户的方案究竟有什么数据对象,我们可用pl/sql developer去查看。
方案的实际运用:
需求:请完成一个功能,让xiaohong用户可以查看scott的emp表。
步骤如下:
1.先用scott用户登录
connnect scott/tiger
2.赋权限
grant select on emp to xiaohong;
3.查看scott表名emp时,需要带对scott用户的方案名。
select * from scott.emp;
以下表空间、权限、角色的概念对以上实际运用作出叙述:
表空间:
什么是表空间:表存在的空间,一个表空间是指向具体的的数据文件。
权限:
系统权限:
系统权限是和数据库管理相关的权限:
create session:登录到数据库实例权限
create table:创建表权限
create index:索引权限
create view:视图权限
create sequence:序列权限
create trriger:触发器权限
对象权限:
select
delete
update
insert
角色:
预定义角色:
把常用的权限集中起来,形成角色
dba
connect
resource
自定义角色:
自己去定义一个角色
三、**使用profile管理用户口令 **
概述:profile是口令限制,资源限制的命令集合,当建立数据时,oracle会自动建立名称为default的profile,当建立用户没有指定profile选项,那么oracle会将default分配给用户。
1.账户锁定
指该账户登录时最多可以输入密码的次数,也可以指定该账户锁定的时间(天)
基本语法:
create profile 文件 limit failed_login_attempts 尝试密码次数 password_lock_time 锁定天数;
alter user 用户名 profile 文件;//分配用户profile文件
举例说明:
指定scott账户最多只能尝试3次登录,锁定时间为2天。
1.创建profile文件
2.create profile myprofile limit fialed_login_attempts 3 password_lock_time 2;
3.alter user scott profile myprofile;
2.终止口令:
需求:说一个账户密码最多10天,宽限期为2天,到时必须设置新的密码。
基本语法:
create profile myprofile limit password_life_time 10 password_grace_time 2;
alter user scott profile myprofile;
解锁:alter user scott account unlock;
3.口令历史:
基本语法:
create profile 文件 limit password_lfe_time 10 password_grace_time 2 password_reuse_time 1;
//password_reuse_time 1 :指定口令可重用时间为10天后需要修改。
alter user 用户名 profile 文件;
4.删除profile:
drop profile 文件;
oracle 启动流程:
windows操作系统:
1.启动监听
在dos窗口下运行命令:lsnrctl start
2.启动数据库实例
oradim -startup -sid 数据库实例名
unix/linux操作系统:
1.启动监听
lsnrctl start
2.以sysdba身份登录
sqlplus / as sysdba
3.登录进去执行:startup
oracle认证方式:
1.基于操作系统:
如果当前用户属于本地操作系统的ora_dba组,即可通过操作系统认证
2.基于oracle数据库:
2.1对于普通用户:
oracle默认使用数据库验证
2.2对于特权用户:
oracle默认使用操作系统认证,如果验证不通过,则再使用数据库验证。
2.3通过配置sqlnet.ora文件,可以修改oracle登录认证方式:
SQLNET.AUTHENTICATION_SERVICES=(NTS)是基于操作系统验证
SQLNET.AUTHENTICATION_SERVICES=(NONE)是基于oracle验证
SQLNET.AUTHENTICATION_SERVICES=(NTS,NONE)是二者共存
如何找回管理员用户丢失的密码?
恢复办法:把原有的密码文件删除,再生成一个新的密码文件。
步骤如下:
1.搜索名为(PWD数据库实例名).ora 文件
2.备份原来的密码文件,再删除原来的密码文件。
3.生成新的密码文件,在DOS窗口下输入命令:
orapwd file 原密码文件的全路径\密码文件名.ora password=新的密码(新的密码文件名要与原来的密码文件名一致)
4.如果希望新的密码生效,则重启数据库实例 。