黑帽联盟

 找回密码
 会员注册
查看: 1692|回复: 0
打印 上一主题 下一主题

[oracle] oracle用户安全管理及基础语法

[复制链接]
yun 黑帽联盟官方人员 

920

主题

37

听众

1364

积分

超级版主

Rank: 8Rank: 8

  • TA的每日心情
    奋斗
    2019-10-18 11:20
  • 签到天数: 678 天

    [LV.9]以坛为家II

    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 usercreate tablecreate viewcreate sequence等等
    对象权限:insertdeleteupdateselect等等

    用户角色
    可分为:预定义角色和自定义角色
    角色包括权限

    预定义角色:dbaconnectresource
    自定义角色: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会自动建立名称为defaultprofile,当建立用户没有指定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是针对多个超级用户可以同时登录数据库。

    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部