实验进阶OCP #2 用户管理

来源:互联网 发布:js中clearinterval 编辑:程序博客网 时间:2024/06/02 23:18


1.用户的属性


用户名,认证方式,默认表、临时空间,配置文件Profile,组,锁定状态

2.创建用户

用em和脚本比较方便
创建用户的脚本
CREATE USER "rezic"
PROFILE "DEFAULT"
IDENTIFIED BY oracle
DEFAULT TABLESPACE "USERS"
TEMPORARY TABLESPACE "TEMP"
ACCOUNT UNLOCK
PASSWORD EXPIRE
quota 10M on USERS

image

3用户验证authentication


类型 password ,external操作系统认证,golbal

password
口令文件 $ORACLE_HOME/dbs  下orapw.ora  sid大小写敏感
重建口令文件需要重新启动数据库

image 
1使用os验证登陆到数据库
2 将remote_login_passwordfile 参数设置为NONE,并重新启动数据库
3 orapwd创建
orapwd file=$ORACLE_HOME/dbs/orapworcl password=oracle entries=5;
password是sysoper和sysdba的口令(必须)
entries:是允许sysdba或sysoper身份连接的最大相异用户数。如果超出了此数值,则必须重建新口令文件。使用较大值比较保险。
4 remote_login_passwordfile设置为exclusive
exclusive表示仅一个实例可以使用口令文件且口令文件包含除sys之外的其他名称。通过使用exclusive口令文件,可以将sysdba或sysoper权限授予单独的用户。
image

remote_login_passwordfile 结合上面的口令文件恢复理解吧

还有个Share状态,用于rac的实例共享,只能存放sys和system用户密码

os认证
$ORACLE_HOME/network/admin/sqlnet.ora
SQLNET.AUTHENICATION_SERVICES = (NFS)/NONE   #开启、关闭
操作系统验证优先于口令文件验证,特别是如果您是操作系统的OSDBA或OSOPER组成员,并且以SYSDBA或SYSOPER身份连接,则连接时具有相关的管理权限,与账户口令无关。
---实现外部认证
就是操作系统认证,登录数据库不需要密码
1 查看默认外部认证账户的前缀
show parameter OS_AUTHENT_PREFIX
ops$
就是数据库账号必须使用ops$开头
ops$操作系统账户名

2 先创建一个操作系统用户
useradd jim
passwd jim
usermod -g oinstall jim

3 创建数据账户,给连接权限
create user ops$jim  IDENTIFIED EXTERNALLY ;
grant connect to ops$jim

4 jim是远程连接,查看系统是否允许远程连接
remote_os_authent 值false 不允许  默认
                  值TRUE 允许
alter system set remote_os_authent = TRUE scope=spfile

startup force

image

设置为true表示允许远程用户连接
su - jim
sqlplus /@orcl

删除用户
必须关闭session
select sid,serial# from v$session where username='rezic';
alter system kill session '145,41';
等待PMON清理进程资源
drop user rezic cascade

4  Profile


控制资源的使用和做密码和账户策略
查看默认
desc dba_profiles
where profile='DEFAULT';根据名字猜想下作用即可
一个用户最多只能应用一个概要文件

--角色public
表示所有用户
案例:你想所有创建的用户都具有登录权限
grant connect to public ;

修改概要文件
alter user 账户名 profile 新名字

5权限


系统权限---》数据库
对象权限---》object

系统权限
Oracle 10G中常见的系统权限
权限    说明
CREATE SESSION    允许被授权者连接数据库实例。
CREATE TABLE    允许被授权者在自己的模式中创建表。
CREATE VIEW    允许被授权者在自己的模式中创建视图。
CREATE SYNONYM    允许被授权者在自己的模式中创建私有的同义词。
CREATE PUBLIC SYSNONYM    允许被授权者在SYS模式中创建同义词,数据库中所有用户都能使用这个同义词(公有同义词)。
CREATE PROCEDURE    允许被授权者在自己的模式中创建存储过程或函数。
CREATE SEQUENCE    允许被授权者在自己的模式中创建序列。
CREATE TRIGGER    允许被授权者在自己的模式中创建触发器。
CREATE USER    允许被授权者在数据库内创建另一个用户,并且在创建用户时指定口令与其他设置。
ALTER USER    允许被授权者能够修改数据库中另一个用户的用户信息,包括更改该用户的口令。
DROP ANY TABLE    允许被授权者删除数据库内任何模式中的任何表。
ALTER ANY TABLE    允许被授权者更改数据库内任何模式中的任何表。
BACKUP ANY TABLE    允许被授权者使用Export实用程序生成数据库内任何表的一个副本。
SELECT ANY TABLE    无论是否显式地授予被授权者对数据库内的任何表执行SELECT语句的权限,都允许被授权者执行上述行为。
INSERT ANY TABLE    无论是否显式地授予被授权者对数据库内的任何表执行INSERT语句的权限,都允许被授权者执行上述行为。
UPDATE ANY TABLE    无论是否显式地授予被授权者对数据库内的任何表执行UPDATE语句的权限,都允许被授权者执行上述行为。
DELETE ANY TABLE    无论是否显式地授予被授权者对数据库内的任何表执行DELETE语句的权限,都允许被授权者执行上述行为。

命令给权限
给予xiaoming crate session crate table权限
并授予with admin option 就是它可以把自身的权限授予给其他人

授权命令
grant 系统权限 to 账户名或角色名

grant crate session ,crate table to xiaoming
WITH ADMIN OPTION

image

删除系统权限
revoke 系统权限 from 用户名

系统权限是可以级联,但是在删除的时候不会级联删除。

---对象权限
select /update /delete /isnert 权限
授予方法
grant 权限列表 on 对象名  to 用户名或角色名
--soctt允许小明查询和删除emp表并给予级联授权的权利
grant select ,delete  on scott.emp to xiaoming with grant option
小明可以查询和修改soctt.emp表

撤销权限

reovke 权限 on 对象名 from 用户名或角色名

对象权限的授权可以通过with grant option 级联授权,收回权限也是级联的。

原创粉丝点击