oracle学习(一)—— 用户管理

1、Oracle的用户关系为如下结构:

创建新的用户: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、用户口令的管理:

主要是对用户的操作,比如用户账户锁定等。


以账户锁定为例(登录system用户):
首先是创建某种规则(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】
 

猜你喜欢

转载自blog.csdn.net/livan1234/article/details/80783674