oracle学习(一)—— 用户管理
1、Oracle的用户关系为如下结构:
![oracle学习(一)—— 用户管理 oracle学习(一)—— 用户管理](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzQ0NC9kYmNjMmFjYTYxMmZjM2Y5NzEyYzAyZjE3NzI3M2I4NC5wbmc=)
创建新的用户:create user语句;
需要dba(system)权限才能使用:
Create user xiaoming identified by m123;
名称是xiaoming;密码是m123;密码必须是以字母开头;
![oracle学习(一)—— 用户管理 oracle学习(一)—— 用户管理](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzgzLzdjMWI0NWY5OTI3YWMwNDA5N2E2MDM2YmEzYjgyNTNiLnBuZw==)
![oracle学习(一)—— 用户管理 oracle学习(一)—— 用户管理](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzM5NC9mMzAyMTQ2Y2RkYWVkYjg2YThiYTc1NTVlMGU2NmM4Mi5wbmc=)
每个instance下面有多个user,每个user下面也是相互独立的,如果需要user之间相互关联,需要用到grant和revoke等命令:
![oracle学习(一)—— 用户管理 oracle学习(一)—— 用户管理](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzQ5MS9hNGQ5M2NmMTM1MGU1MTA4YzE5YTNjMmMxZjJmNGJiMy5wbmc=)
每个用户下面需要有多个角色,新建的用户是没有角色的,他不能登录到数据库中,角色分为兹定于角色和预定义角色,常用的预定义角色有connect、dba、resource等。
![oracle学习(一)—— 用户管理 oracle学习(一)—— 用户管理](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzc5My8wYmEzZTQ5NzUwZDk4YTFjMjRiOGRmZjBlNmZmNjQwOS5wbmc=)
角色:事先定义一种角色,角色中涵盖一部分特有的权限,可以理解为权限的集合;
常用的角色为:connect(连接权限)、dba(管理)、resource(表空间建表)等;
Grant connect to xiaoming;
创建这个角色之后,进入xiaoming发现用户项下没有表;
如果要建表,则需要添加resource角色;
Grant resource to xiaoming;
此时便可以建表;
Create table test(userId varchar2(32), name varchar2(32));
![oracle学习(一)—— 用户管理 oracle学习(一)—— 用户管理](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzEwNy85YmQ3MTgyNjg2MGE4MTE0OWZlZjJkMGMwZjY4ZWNiYi5wbmc=)
Oracle大概有140多种权限,分别对应于各个用户。
权限分为:系统权限(用户对数据库的相关权限)、对象权限(用户对其他用户的数据对象访问的权限)。
数据对象主要包括:表、视图、过程等。
新建的用户需要拥有哪些权限:主要是赋给连接角色的权限;
![oracle学习(一)—— 用户管理 oracle学习(一)—— 用户管理](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzE4NS8zYjBhYTg3NGFlZWU5N2ZhMzI0NTAwNzlmNTg5ZTRmOS5wbmc=)
3、用户之间权限的交互该如何实现:
![oracle学习(一)—— 用户管理 oracle学习(一)—— 用户管理](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzM2My84MDQyYzI5MzM3YTA2MzdmNDA2Njc2ZWJjNzZjOTZkMy5wbmc=)
如果需要xiaoming去访问scott中的emp表,则需要对对象权限进行控制;
进入到sys、system、scott任何一个用户下面,然后执行:
Grant select on emp to xiaoming;
Grant update on emp to xiaoming;
此时进入xiaoming的用户,查询修改表变成scott.emp即可;
Select * from scott.emp;
对权限的收回:
Revoke select on emp from xiaoming;
scott用户将权限给到xiaoming后,还希望xiaoming能将对应的权限赋给其他用户,此时可以用:
----如果是对象权限,就加入with grant option:
Grant select on emp to xiaoming with grant option;
----如果是系统权限,就加入with admin option:
Grant connect to xiaoming with admin option;
首先是创建某种规则(create profile),然后赋值给用户(alter)。
Lock_account:为创建的规则的名称;
Failed_login_attempts 3:为允许尝试失败的次数;
Password_lock_time 2:表示锁定多少天;
执行完上次的语句后,输错三次密码,则账户会锁定2天。
报错为:
![oracle学习(一)—— 用户管理 oracle学习(一)—— 用户管理](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzMxMS8yMTgxYTk1MjNjM2RkYTEwNzJlNjQwZmFkZTEyMDA4Ny5wbmc=)
对用户的解锁为:
![oracle学习(一)—— 用户管理 oracle学习(一)—— 用户管理](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzcvMDExYTY1ZjQyMmZkNDUzZTgyYTJmNThkMzgzODBhY2YucG5n)
设置用户密码的有效期(终止口令):
![oracle学习(一)—— 用户管理 oracle学习(一)—— 用户管理](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzU2My9iYzAyYTQ4Y2U0Yzg1NWRkZmQ1MzI1OWQ1MjYyNDA1Yi5wbmc=)
口令历史:
![oracle学习(一)—— 用户管理 oracle学习(一)—— 用户管理](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzE0Ny8yZGU1NmEwMWFhOWM2OTFmNDIyMDc0NTRlNmI5NzM4My5wbmc=)
主要是对上面的命令添加一个password_reuse_time,主要指原口令10天以后才能使用。
删除profile:
![oracle学习(一)—— 用户管理 oracle学习(一)—— 用户管理](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzk0NC9hNDI5ZmU5MmI2ZmZiOTcyNmYwZGE1NzE4OTU1ZGJmMC5wbmc=)
当这个文件删除后,其对应的约束都没有了。
Cascade为:级联的效果,为下一级的操作执行相同的操作。
5、修改用户密码:
修改自己:password xiaoming;
修改别人:alter user xiaoming2 identified by new password;
6、删除用户:
在删除用户时,如果用户下面创建有表,则需要在删除语句中加上【cascade】
![oracle学习(一)—— 用户管理 oracle学习(一)—— 用户管理](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzEzNC8wZjc4NGRhZmI4NjI4YTY0YTcyMjJjMjVjNTM1NWUwNi5wbmc=)
创建新的用户:create user语句;
需要dba(system)权限才能使用:
Create user xiaoming identified by m123;
名称是xiaoming;密码是m123;密码必须是以字母开头;
2、数据库结构中每一部分拆分:
一个数据库会产生多个instance,每个instance之间是相互独立的。
每个instance下面有多个user,每个user下面也是相互独立的,如果需要user之间相互关联,需要用到grant和revoke等命令:
每个用户下面需要有多个角色,新建的用户是没有角色的,他不能登录到数据库中,角色分为兹定于角色和预定义角色,常用的预定义角色有connect、dba、resource等。
角色:事先定义一种角色,角色中涵盖一部分特有的权限,可以理解为权限的集合;
常用的角色为:connect(连接权限)、dba(管理)、resource(表空间建表)等;
Grant connect to xiaoming;
创建这个角色之后,进入xiaoming发现用户项下没有表;
如果要建表,则需要添加resource角色;
Grant resource to xiaoming;
此时便可以建表;
Create table test(userId varchar2(32), name varchar2(32));
Oracle大概有140多种权限,分别对应于各个用户。
权限分为:系统权限(用户对数据库的相关权限)、对象权限(用户对其他用户的数据对象访问的权限)。
数据对象主要包括:表、视图、过程等。
新建的用户需要拥有哪些权限:主要是赋给连接角色的权限;
3、用户之间权限的交互该如何实现:
如果需要xiaoming去访问scott中的emp表,则需要对对象权限进行控制;
进入到sys、system、scott任何一个用户下面,然后执行:
Grant select on emp to xiaoming;
Grant update on emp to xiaoming;
此时进入xiaoming的用户,查询修改表变成scott.emp即可;
Select * from scott.emp;
对权限的收回:
Revoke select on emp from xiaoming;
scott用户将权限给到xiaoming后,还希望xiaoming能将对应的权限赋给其他用户,此时可以用:
----如果是对象权限,就加入with grant option:
Grant select on emp to xiaoming with grant option;
----如果是系统权限,就加入with admin option:
Grant connect to xiaoming with admin option;
如果scott回收xiaoming的权限,则xiaoming赋给xiaohong的权限也对应消失了。
4、用户口令的管理:
主要是对用户的操作,比如用户账户锁定等。
首先是创建某种规则(create profile),然后赋值给用户(alter)。
Lock_account:为创建的规则的名称;
Failed_login_attempts 3:为允许尝试失败的次数;
Password_lock_time 2:表示锁定多少天;
执行完上次的语句后,输错三次密码,则账户会锁定2天。
报错为:
对用户的解锁为:
设置用户密码的有效期(终止口令):
口令历史:
主要是对上面的命令添加一个password_reuse_time,主要指原口令10天以后才能使用。
删除profile:
当这个文件删除后,其对应的约束都没有了。
Cascade为:级联的效果,为下一级的操作执行相同的操作。
5、修改用户密码:
修改自己:password xiaoming;
修改别人:alter user xiaoming2 identified by new password;
6、删除用户:
在删除用户时,如果用户下面创建有表,则需要在删除语句中加上【cascade】