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 3用户验证authentication 类型 password ,external操作系统认证,golbal password 口令文件 $ORACLE_HOME/dbs 下orapw<SID>.ora sid大小写敏感 重建口令文件需要重新启动数据库 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权限授予单独的用户。
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 设置为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 删除系统权限 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 级联授权,收回权限也是级联的。 |