[ contact ] [ home ] [ search ] [ submit link ] login | want to join? register in seconds!

home and garden
lawyers reviews
cosmetic surgery
cosmetic surgery cost / price site
channels:
hot tags: [all tags...]
hot tags(2): [all tags...]
[all tags...]
Comparing Oracle 10g column masking to relational views
tech related articles:
0
vote!
Outsourcing Does Not Save Money (www.cioinsight.com)
crawler @ 03/30/07 12:36 comments(0) report
0
vote!
Opinion: We Trained Them, We Should (Be Allowed To) Keep Them (www.cioinsight.com)
crawler @ 03/30/07 12:36 comments(0) report
0
vote!
March Madness Over Data Analytics (www.cioinsight.com)
crawler @ 03/30/07 12:36 comments(0) report
0
vote!
Cybercrime Treaty: What it Means to You (www.cioinsight.com)
crawler @ 03/30/07 12:36 comments(0) report
0
vote!
It's True. Numbers Show Big Decline of Women in IT (www.cioinsight.com)
crawler @ 03/30/07 12:36 comments(0) report
0
vote!
50 Technologies: Where CIOs are Spending Their Money (www.cioinsight.com)
crawler @ 03/30/07 12:36 comments(0) report
Comparing Oracle 10g column masking to relational views
"The mission of the older tip was to hide salary and commission_pct columns on a report if the department_id was equal to 60. The predicate is a static value, so a relational view could certainly have been used to do the same thing. "

" shows a view that uses the selector CASE statement (which has been available in Oracle SQL since version 8i) to compare the department_id value to 60, return NULL if it is equal, or return the salary if it is any other value. A similar CASE statement could mask the commission_pct data. The data would be protected by granting access only to the view and not to the base table (Employees)."

"Your first thought might be to simply create more views -- one for each department -- and grant each user access to the correct view. There are many reasons that this is not a good solution, which include the following:"

" shows a small modification to the VPD policy function from the previous article. Instead of testing for department 60 directly, it uses the SYS_CONTEXT function to return the user's department. (Assume this value was set at logon for the user.) The function then returns a different predicate (the WHERE clause) for each user. The salary will only be shown in rows for which the predicate is true. If a department number is not set, the always false predicate of "1=2" will be returned, causing the salary to be masked for the whole report."

"Even better is the fact that the call to SYS_CONTEXT acts as a bind variable in the query; only one copy of this query needs to be stored in the Shared Pool to handle all departments. A relational view could be built that uses the SYS_CONTEXT function in the same way, but a different view in the application would be
... read the whole article


comments:(log in to vote on this article or comment on it)