初学JQ,关于 事件 笔记(四)
2011-03-31 08:53
218 查看
1)Auth ID about DDL language in Dynamic SQL
1@@@@with AUTHID CURRENT_USER option
HR@ocm> !cat tmp.sql
CREATE OR REPLACE PROCEDURE exec_DDL
( ddl_string IN VARCHAR2 )
AUTHID CURRENT_USER
IS
BEGIN
EXECUTE IMMEDIATE ddl_string; --Who is the table belong to
--sh create a table using this procedure,
--check who is that table belong to !!!
END;
/
HR@ocm> @tmp.sql
Procedure created.
HR@ocm> GRANT execute ON exec_DDL TO sh;
Grant succeeded.
@@@login by sh, check
SH@ocm> EXEC hr.exec_DDL('CREATE TABLE who_am_I_belong_to(a int)');
PL/SQL procedure successfully completed.
SH@ocm> set lines 60
SH@ocm> desc who_am_I_belong_to
Name Null? Type
----------------------------- -------- --------------------
A NUMBER(38)
HR@ocm> desc who_am_I_belong_to
ERROR:
ORA-04043: object who_am_I_belong_to does not exist
@@@Summary:
obviously, who is calling the procedure, the object is belong to who use the DDL to create it
When you use AUTHID CURRENT_USER before IS keyword.
this option is that running the code in this plsql object by the current user.
No matter who the plsql is belong to.
2@@@@without AUTHID CURRENT_USER option
HR@ocm> !cat tmp.sql
CREATE OR REPLACE PROCEDURE exec_DDL
( ddl_string IN VARCHAR2 )
IS
BEGIN
EXECUTE IMMEDIATE ddl_string; --Who is the table belong to
--sh create a table using this procedure,
--check who is that table belong to !!!
END;
/
HR@ocm> @tmp.sql
Procedure created.
HR@ocm> GRANT execute ON exec_DDL TO sh;
Grant succeeded.
@@@login by sh, check
SH@ocm> EXEC hr.exec_DDL('CREATE TABLE who_am_I_belong_to(a int)');
BEGIN hr.exec_DDL('CREATE TABLE who_am_I_belong_to(a int)'); END;
*
ERROR at line 1:
ORA-01031: insufficient privileges
ORA-06512: at "HR.EXEC_DDL", line 5
ORA-06512: at line 1
@@@Summary
without AUTHID CURRENT_USER option, you could not use it.
Note: default option is AUTHID DEFINER, here it is
本文出自 “Oracle+Linux=>Majesty” 博客,请务必保留此出处http://majesty.blog.51cto.com/3493901/1099536
1@@@@with AUTHID CURRENT_USER option
HR@ocm> !cat tmp.sql
CREATE OR REPLACE PROCEDURE exec_DDL
( ddl_string IN VARCHAR2 )
AUTHID CURRENT_USER
IS
BEGIN
EXECUTE IMMEDIATE ddl_string; --Who is the table belong to
--sh create a table using this procedure,
--check who is that table belong to !!!
END;
/
HR@ocm> @tmp.sql
Procedure created.
HR@ocm> GRANT execute ON exec_DDL TO sh;
Grant succeeded.
@@@login by sh, check
SH@ocm> EXEC hr.exec_DDL('CREATE TABLE who_am_I_belong_to(a int)');
PL/SQL procedure successfully completed.
SH@ocm> set lines 60
SH@ocm> desc who_am_I_belong_to
Name Null? Type
----------------------------- -------- --------------------
A NUMBER(38)
HR@ocm> desc who_am_I_belong_to
ERROR:
ORA-04043: object who_am_I_belong_to does not exist
@@@Summary:
obviously, who is calling the procedure, the object is belong to who use the DDL to create it
When you use AUTHID CURRENT_USER before IS keyword.
this option is that running the code in this plsql object by the current user.
No matter who the plsql is belong to.
2@@@@without AUTHID CURRENT_USER option
HR@ocm> !cat tmp.sql
CREATE OR REPLACE PROCEDURE exec_DDL
( ddl_string IN VARCHAR2 )
IS
BEGIN
EXECUTE IMMEDIATE ddl_string; --Who is the table belong to
--sh create a table using this procedure,
--check who is that table belong to !!!
END;
/
HR@ocm> @tmp.sql
Procedure created.
HR@ocm> GRANT execute ON exec_DDL TO sh;
Grant succeeded.
@@@login by sh, check
SH@ocm> EXEC hr.exec_DDL('CREATE TABLE who_am_I_belong_to(a int)');
BEGIN hr.exec_DDL('CREATE TABLE who_am_I_belong_to(a int)'); END;
*
ERROR at line 1:
ORA-01031: insufficient privileges
ORA-06512: at "HR.EXEC_DDL", line 5
ORA-06512: at line 1
@@@Summary
without AUTHID CURRENT_USER option, you could not use it.
Note: default option is AUTHID DEFINER, here it is
本文出自 “Oracle+Linux=>Majesty” 博客,请务必保留此出处http://majesty.blog.51cto.com/3493901/1099536
相关文章推荐
- 初学JQ,关于 选择器 笔记(二)
- 初学JQ,关于 DOM操作 笔记(三)
- 《Javascript高级程序设计》(第2版)学习笔记13--关于事件
- 关于设计:Actionscript 有关键盘事件、处理日期时间、文字与数字处理笔记
- 【Android游戏开发十五】关于Android 游戏开发中 OnTouchEvent() 触屏事件的性能优化笔记!
- 【前端学习笔记】2015-09-01 附二 关于jq选择器的简单运用
- 关于JQ JS的延时方法笔记
- 【Android游戏开发十五】关于Android 游戏开发中 OnTouchEvent() 触屏事件的性能优化笔记!
- 【Android游戏开发十五】关于Android 游戏开发中 OnTouchEvent() 触屏事件的性能优化笔记!
- (转)【Android游戏开发十五】关于Android 游戏开发中 OnTouchEvent() 触屏事件的性能优化笔记!
- 【Android2D游戏开发十五】关于Android 游戏开发中 OnTouchEvent() 触屏事件的性能优化笔记!
- 【Android游戏开发十五】关于Android 游戏开发中 OnTouchEvent() 触屏事件的性能优化笔记!
- .Net开发笔记(六)关于事件(续)
- 初学JSP笔记———关于中文乱码
- 【Android游戏开发之路二】关于Android 游戏开发中 OnTouchEvent() 触屏事件的性能优化笔记!
- 关于事件分发的笔记
- 【Android游戏开发十五】关于Android 游戏开发中 OnTouchEvent() 触屏事件的性能优化笔记!
- 【Bug笔记】关于Js的返回事件和Java中NoSuchMethodException
- 【Android游戏开发十五】关于Android 游戏开发中 OnTouchEvent() 触屏事件的性能优化笔记!
- [笔记]关于jquery冒泡和默认事件处理