Oracle用户管理 创建用户: 语法:create user 用户名 identified by 密码
修改密码: 语法:passw 用户 或 Alter user 用户名 identified by 新密码; 和mysql不同,mysql修改密码方式: Set password for 用户名=password(‘密码‘);
用新用户登录oracle数据库 Conn 新用户/密码 ERROR: ORA-01045: user CBH lacks CREATE SESSION privilege; logon denied 不允许登录数据库,需要授权才可。 和mysql不同,新建的用户可以直接登录mysql数据库
用户授权 一般都是用管理员进行授权 Grant 语法:grant 权限 to 用户;
用户权限 权限可分为系统权限和对象权限 系统权限:create user,create table,create view,create sequence等等 对象权限:insert,delete,update,select等等
用户角色 可分为:预定义角色和自定义角色 角色包括权限
预定义角色:dba,connect,resource 自定义角色:crud(即增删改查)
授予角色 语法:grant 角色 to 用户
回收角色 语法:revoke 角色 from 用户
删除用户 语法:drop user 用户 前提:此用户没有创建任何对象。否则不能删除,要想删除,需在后面加上cascade参数 如:drop user 用户 cascade(删除此用户的时候,此用户所创建的数据对象也会被一并删除) 如果想紧紧删除用户,不删除数据对象,可以先备份一下数据,然后在删除用户,接着再恢复数据。
Oracle方案 每当创建一个用户的额时候,并且用这个用户创建了数据对象,也就产生了相应的方案,方案名称和用户的名称一样 和mysql不同,在里面没有方案概念,刚创建的用户,授予他all权限,就可以查看当前数据库下的所有表,而oracle不同,它需要被授予查看某个方案里表的权限才可
案例: Dingwei用户想查看scott方案里面的emp表,则需要管理员或者scott用户给dingwei用户进行授权,才可进行相应的操作。 Grant select on scott.emp to dingwei;
系统权限和对象权限的继承 系统权限继承:with admin option 对象对象继承:with grant option
案例: 1、 通过系统管理员system新建用户dingwei并授权可以查看scott方案里面的emp表,再通过dingwei用户授权给其它用户stu用户可以查看scott方案里面的emp表。 Conn scott/admin或者conn system/admin Grant select on scott.emp to dingwei with grant option; Conn dingwei/dingwei Grant select on scott.emp to stu;
用户口令管理 Profile文件:profile是口令限制,资源限制的命令集合,当建立数据时,oracle会自动建立名称为default的profile,当建立用户没有指定profile选项,那oracle就会将default分配给用户。 Mysql没有profile口令历史管理文件
创建profile 语法:create profile profile文件名 limit failed_login_attempts 登录的次数 password_lock_time 天数;
分配profile文件给某个用户 语法:alter user 用户 profile profile文件;
案例(账户锁定) 例如:指定scott用户最多只能尝试3次登录,失败过后,锁定用户2天。 Create profile myprofle1 limit failed_login_attempts 3password_lock_time 2; Alter user scott profile myprofile1;
为用户解锁 Alter user scott account unlock;
终止口令 用途:为了让用户定期修改密码可以使用终止口令来完成,同样这个命令需要dba身份来操作 语法:create profile profile文件 limit password_life_time 天数 password_grace_time 宽限日;
案例: 给所创建的用户dingwei创建一个profile文件,要求该用户每隔10天需修改登录密码,宽限期为2天。 Create profile myprofile2 limit password_life_time 10password_grace_time 2; Alter user digwei profile myprofile2 切记:一个用户只要被分配了一次profile,要想再次分配的话,会在原有的基础上进行累加天数。和想要的结果不一样,即使删除之前分配过的profile。
口令历史 概述:当要求用户修改密码时,不能使用原有的旧密码,可使用口令历史。 语法:create profile profile文件 password_life_time 5 password_grace_time 2password_reuse_time 1;
删除profile 语法:drop profile profile文件;
Oracle登录认证方式 分为操作系统认证和数据库认证
操作系统认证(默认的认证方式) Conn 不存在用户/随机密码 as sysdba(可以登录进去,并且是以超级用户登录进去) Conn 存在的普通用户/随机密码 as sysdba(可以登录进去,并且是以超级用户登录进去) 原因:系统用户组ora_dba里面有当前用户,所以才会导致如此 解决方式:删除ora_dba组里面的用户即可。
数据库验证 对于普通用户验证,默认的是数据库验证 对于特权用户,如sys,是通过操作系统认证的,在这里可以修改数据库的认证登录方式,即修改sqlnet.ora文件 SQLNET.AUTHENTICATION_SERVICES= (NTS) 注:是通过操作系统认证的 SQLNET.AUTHENTICATION_SERVICES= (NONE) 注:是通过数据库验证的 SQLNET.AUTHENTICATION_SERVICES= (NONE,NTS) 注:也可两者结合 再通过数据库验证的额时候,使用如下方式是登录不进去的。 Conn 不存在用户/随机密码 as sysdba Conn 存在的普通用户/随机密码 as sysdba
Oracle管理员密码丢失 解决方法: 1、 在安装目录下找PWDorcl.ora文件,备份一下,再删除此文件 2、 在dos环境下,前提必须是操作系统管理员用户administrator,执行以下命令: a) Orapwd file=PWDorcl.ora所在的全路径\PWDorcl.ora password=新的密码 entries=10。会生成一个新的PWDorcl.ora文件 注:entries是针对多个超级用户可以同时登录数据库。
|