文档详情

深入浅出Oracle数据库安全知识.pptx

发布:2025-04-28约8.06千字共10页下载文档
文本预览下载声明

刘相兵深入浅出Oracle数据库安全知识(V1.0)

允许或禁止OracleDB中的用户行为,包括其中的对象通过以下实现:登录身份验证(Authentication),连接到数据库访问控制,访问模式对象和数据(accesscontrol)审计,记录用户行为(audit)

数据库管理员(以SYSDBA/SYSOPER)身份在DB之外被身份验证操作系统身份验证密码文件身份验证举例来说sqlplus“/assysdba”登录,OS用户在Unix上为DBA组用户,在Windows上是ORADBA组用户普通数据库用户只能在数据库启动(alterdatabaseopen)后身份验证并等登录也可以采用OS身份验证例如:createusermacleanidentifiedexternally.

数据库身份认证例如:createusermacleanidentifiedbyoracle;可以通过数据字典视图来查看用户信息DBA_USERSdescribesallusersofthedatabase.ALL_USERSListsusersvisibletothecurrentuser,butdoesnotdescribethemUSER_TS_QUOTASDescribestablespacequotasforusersV$SESSIONListssessioninformationforeachcurrentsession,includesusernamePROXY_USERSDescribesuserswhocanassumetheidentityofotherusersV$PWFILE_USERSlistsusersgrantedSYSDBAandSYSOPERprivilegesasderivedfromthepasswordfile

对象级别的安全(最小权限原则)通过对象权限通过角色数据级别的安全(细粒度访问控制)通过RLS(RowLevelSecurity)

将自身拥有对象的权限显示地授权给其他用户,包括查询和修改数据举例来说:CONNMACLEAN/ORACLEGRANTSELECTONwallettohanna;角色(roles)是一组已被命名的权限,可以直接授权给用户或者其他角色:举例来说:CREATEROLEdeveloper;GRANTSELECTONwallet1todeveloper;GRANTINSERTONwallet1todeveloper;GRANTrole1tohanna;

内核函数Kzpchkbu()负责完成为给定用户检查某个对象上权限的任务。该函数可能被多种路径调用,以检查对象上的必要权限。大致的算法如下:If检查需要被授权的用户是否对象的拥有者则返回授权验证成功(表示不需要做权限检查)Else该对象权限是否被授予了PUBLIC若是,则返回授权验证成功Else检查该用户是否被显示地授予了该对象权限或角色若是,则返回授权验证成功Else检查该用户是否被显示地授予了对应的系统权限若是,则返回授权验证成功否则报错,ORA_01031,ORA-00942

对象级别的安全控制普通用户访问SYSschema下的对象?(越来越困难!)从9i开始,’ANY’权限无法访问SYS用户对象默认O7_DICTIONARY_ACCESSIBILITY=false,设置为TRUE可以让’ANY’权限访问SYS对象否则普通用户必须显示地拥有SYS对象的权限。12

常用数据字典视图,帮助了解对象和系统权限的信息:-DBA_SYS_PRIVSdescribessystemprivilegesgrantedtousersandroles(USER_SYS_PRIVSforconnecteduser).-SESSION_PRIVSliststheprivilegesthatarecurrentlyavailabletotheuser.-SESSION_ROLESliststherolesthatare

显示全部
相似文档