[Developer] #424 filter VPD policies to protected objects
This commit is contained in:
@@ -3,40 +3,54 @@
|
|||||||
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.cloudhandson.vpdbackoffice.mapper.VpdPolicyMapper">
|
<mapper namespace="com.cloudhandson.vpdbackoffice.mapper.VpdPolicyMapper">
|
||||||
<sql id="policyColumns">
|
<sql id="policyColumns">
|
||||||
object_owner,
|
${alias}object_owner,
|
||||||
object_name,
|
${alias}object_name,
|
||||||
policy_group,
|
${alias}policy_group,
|
||||||
policy_name,
|
${alias}policy_name,
|
||||||
pf_owner AS function_owner,
|
${alias}pf_owner AS function_owner,
|
||||||
package AS package_name,
|
${alias}package AS package_name,
|
||||||
function AS function_name,
|
${alias}function AS function_name,
|
||||||
RTRIM(
|
RTRIM(
|
||||||
CASE WHEN sel = 'YES' THEN 'SELECT,' ELSE '' END ||
|
CASE WHEN ${alias}sel = 'YES' THEN 'SELECT,' ELSE '' END ||
|
||||||
CASE WHEN ins = 'YES' THEN 'INSERT,' ELSE '' END ||
|
CASE WHEN ${alias}ins = 'YES' THEN 'INSERT,' ELSE '' END ||
|
||||||
CASE WHEN upd = 'YES' THEN 'UPDATE,' ELSE '' END ||
|
CASE WHEN ${alias}upd = 'YES' THEN 'UPDATE,' ELSE '' END ||
|
||||||
CASE WHEN del = 'YES' THEN 'DELETE,' ELSE '' END ||
|
CASE WHEN ${alias}del = 'YES' THEN 'DELETE,' ELSE '' END ||
|
||||||
CASE WHEN idx = 'YES' THEN 'INDEX,' ELSE '' END,
|
CASE WHEN ${alias}idx = 'YES' THEN 'INDEX,' ELSE '' END,
|
||||||
','
|
','
|
||||||
) AS statement_types,
|
) AS statement_types,
|
||||||
chk_option AS check_option,
|
${alias}chk_option AS check_option,
|
||||||
enable AS enabled,
|
${alias}enable AS enabled,
|
||||||
static_policy,
|
${alias}static_policy,
|
||||||
policy_type,
|
${alias}policy_type,
|
||||||
long_predicate
|
${alias}long_predicate
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<select id="findPolicies" resultType="com.cloudhandson.vpdbackoffice.domain.vpd.VpdPolicyView">
|
<select id="findPolicies" resultType="com.cloudhandson.vpdbackoffice.domain.vpd.VpdPolicyView">
|
||||||
SELECT <include refid="policyColumns"/>
|
SELECT <include refid="policyColumns"><property name="alias" value="p."/></include>
|
||||||
FROM all_policies
|
FROM all_policies p
|
||||||
ORDER BY object_owner, object_name, policy_name
|
WHERE EXISTS (
|
||||||
|
SELECT 1
|
||||||
|
FROM cb_protected_object o
|
||||||
|
WHERE o.enabled_yn = 'Y'
|
||||||
|
AND o.owner = p.object_owner
|
||||||
|
AND o.object_name = p.object_name
|
||||||
|
)
|
||||||
|
ORDER BY p.object_owner, p.object_name, p.policy_name
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="findPolicy" resultType="com.cloudhandson.vpdbackoffice.domain.vpd.VpdPolicyView">
|
<select id="findPolicy" resultType="com.cloudhandson.vpdbackoffice.domain.vpd.VpdPolicyView">
|
||||||
SELECT <include refid="policyColumns"/>
|
SELECT <include refid="policyColumns"><property name="alias" value="p."/></include>
|
||||||
FROM all_policies
|
FROM all_policies p
|
||||||
WHERE object_owner = UPPER(#{objectOwner,jdbcType=VARCHAR})
|
WHERE p.object_owner = UPPER(#{objectOwner,jdbcType=VARCHAR})
|
||||||
AND object_name = UPPER(#{objectName,jdbcType=VARCHAR})
|
AND p.object_name = UPPER(#{objectName,jdbcType=VARCHAR})
|
||||||
AND policy_name = UPPER(#{policyName,jdbcType=VARCHAR})
|
AND p.policy_name = UPPER(#{policyName,jdbcType=VARCHAR})
|
||||||
|
AND EXISTS (
|
||||||
|
SELECT 1
|
||||||
|
FROM cb_protected_object o
|
||||||
|
WHERE o.enabled_yn = 'Y'
|
||||||
|
AND o.owner = p.object_owner
|
||||||
|
AND o.object_name = p.object_name
|
||||||
|
)
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="findFunctionSource" resultType="string">
|
<select id="findFunctionSource" resultType="string">
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<main class="container py-4">
|
<main class="container py-4">
|
||||||
<div class="page-title">
|
<div class="page-title">
|
||||||
<h1>VPD 설정</h1>
|
<h1>VPD 설정</h1>
|
||||||
<p>현재 계정에서 조회 가능한 Oracle VPD policy 설정을 확인합니다.</p>
|
<p>테이블/뷰 관리에 등록된 보호 객체에 적용된 Oracle VPD policy 설정을 확인합니다.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="alert alert-warning" th:if="${runtimeError}">
|
<div class="alert alert-warning" th:if="${runtimeError}">
|
||||||
@@ -81,7 +81,7 @@
|
|||||||
</th:block>
|
</th:block>
|
||||||
<tr th:if="${#lists.isEmpty(policies)}">
|
<tr th:if="${#lists.isEmpty(policies)}">
|
||||||
<td colspan="7" class="text-muted">
|
<td colspan="7" class="text-muted">
|
||||||
조회 가능한 VPD policy가 없습니다. 정책이 없거나 현재 DB 계정에 dictionary 조회 권한이 없을 수 있습니다.
|
등록된 보호 객체에 적용된 VPD policy가 없습니다. 테이블/뷰 관리의 보호 객체 등록 상태와 DB policy 적용 상태를 확인하세요.
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|||||||
Reference in New Issue
Block a user