2026-03-12 20:23:15
This commit is contained in:
129
idev/plsql_webdba_utl_pkg.sql
Normal file
129
idev/plsql_webdba_utl_pkg.sql
Normal file
@@ -0,0 +1,129 @@
|
||||
-- +----------------------------------------------------------------------------+
|
||||
-- | Jeffrey M. Hunter |
|
||||
-- | jhunter@idevelopment.info |
|
||||
-- | www.idevelopment.info |
|
||||
-- |----------------------------------------------------------------------------|
|
||||
-- | Copyright (c) 1998-2012 Jeffrey M. Hunter. All rights reserved. |
|
||||
-- |----------------------------------------------------------------------------|
|
||||
-- | DATABASE : Oracle |
|
||||
-- | FILE : plsql_webdba_utl_pkg.sql |
|
||||
-- | CLASS : PL/SQL |
|
||||
-- | PURPOSE : Example PL/SQL package that shows how to use dynamic SQL before |
|
||||
-- | Oracle8i. |
|
||||
-- | NOTE : As with any code, ensure to test this script in a development |
|
||||
-- | environment before attempting to run it in production. |
|
||||
-- +----------------------------------------------------------------------------+
|
||||
|
||||
CREATE OR REPLACE PACKAGE webdba_util AS
|
||||
|
||||
PROCEDURE drop_user(username_in IN VARCHAR2);
|
||||
PROCEDURE create_user(username_in IN VARCHAR2,
|
||||
default_tablespace_in IN VARCHAR2,
|
||||
temporary_tablespace_in IN VARCHAR2,
|
||||
password_in IN VARCHAR2);
|
||||
PROCEDURE change_user_password(username_in IN VARCHAR2,
|
||||
password_in IN VARCHAR2);
|
||||
PROCEDURE grant_user(username_in IN VARCHAR2,
|
||||
privilege_in IN VARCHAR2);
|
||||
PROCEDURE revoke_user(username_in IN VARCHAR2,
|
||||
privilege_in IN VARCHAR2);
|
||||
|
||||
END webdba_util;
|
||||
/
|
||||
show errors
|
||||
|
||||
CREATE OR REPLACE PACKAGE BODY webdba_util AS
|
||||
|
||||
PROCEDURE drop_user(username_in IN VARCHAR2) IS
|
||||
v_Cursor NUMBER;
|
||||
v_DropUserString VARCHAR2(500);
|
||||
v_Results INTEGER;
|
||||
BEGIN
|
||||
|
||||
v_Cursor := DBMS_SQL.open_cursor;
|
||||
v_DropUserString := 'DROP USER ' || username_in || ' CASCADE';
|
||||
|
||||
DBMS_SQL.PARSE(v_Cursor, v_DropUserString, DBMS_SQL.V7);
|
||||
v_Results := DBMS_SQL.EXECUTE(v_Cursor);
|
||||
|
||||
DBMS_SQL.close_cursor(v_Cursor);
|
||||
|
||||
END drop_user;
|
||||
|
||||
PROCEDURE create_user(username_in IN VARCHAR2,
|
||||
default_tablespace_in IN VARCHAR2,
|
||||
temporary_tablespace_in IN VARCHAR2,
|
||||
password_in IN VARCHAR2) IS
|
||||
v_Cursor NUMBER;
|
||||
v_DropUserString VARCHAR2(1500);
|
||||
v_Results INTEGER;
|
||||
BEGIN
|
||||
|
||||
v_Cursor := DBMS_SQL.open_cursor;
|
||||
v_DropUserString := 'CREATE USER ' || username_in || ' DEFAULT TABLESPACE ' || default_tablespace_in ||
|
||||
' TEMPORARY TABLESPACE ' || temporary_tablespace_in || ' IDENTIFIED BY ' || password_in;
|
||||
|
||||
DBMS_SQL.PARSE(v_Cursor, v_DropUserString, DBMS_SQL.V7);
|
||||
v_Results := DBMS_SQL.EXECUTE(v_Cursor);
|
||||
|
||||
DBMS_SQL.close_cursor(v_Cursor);
|
||||
|
||||
END create_user;
|
||||
|
||||
|
||||
PROCEDURE change_user_password(username_in IN VARCHAR2,
|
||||
password_in IN VARCHAR2) IS
|
||||
v_Cursor NUMBER;
|
||||
v_AlterUserString VARCHAR2(500);
|
||||
v_Results INTEGER;
|
||||
BEGIN
|
||||
|
||||
v_Cursor := DBMS_SQL.open_cursor;
|
||||
v_AlterUserString := 'ALTER USER ' || username_in || ' IDENTIFIED BY ' || password_in;
|
||||
|
||||
DBMS_SQL.PARSE(v_Cursor, v_AlterUserString, DBMS_SQL.V7);
|
||||
v_Results := DBMS_SQL.EXECUTE(v_Cursor);
|
||||
|
||||
DBMS_SQL.close_cursor(v_Cursor);
|
||||
|
||||
END change_user_password;
|
||||
|
||||
PROCEDURE grant_user(username_in IN VARCHAR2,
|
||||
privilege_in IN VARCHAR2) IS
|
||||
v_Cursor NUMBER;
|
||||
v_AlterUserString VARCHAR2(500);
|
||||
v_Results INTEGER;
|
||||
BEGIN
|
||||
|
||||
v_Cursor := DBMS_SQL.open_cursor;
|
||||
v_AlterUserString := 'GRANT ' || privilege_in || ' TO ' || username_in;
|
||||
|
||||
DBMS_SQL.PARSE(v_Cursor, v_AlterUserString, DBMS_SQL.V7);
|
||||
v_Results := DBMS_SQL.EXECUTE(v_Cursor);
|
||||
|
||||
DBMS_SQL.close_cursor(v_Cursor);
|
||||
|
||||
END grant_user;
|
||||
|
||||
PROCEDURE revoke_user(username_in IN VARCHAR2,
|
||||
privilege_in IN VARCHAR2) IS
|
||||
v_Cursor NUMBER;
|
||||
v_AlterUserString VARCHAR2(500);
|
||||
v_Results INTEGER;
|
||||
BEGIN
|
||||
|
||||
v_Cursor := DBMS_SQL.open_cursor;
|
||||
v_AlterUserString := 'REVOKE ' || privilege_in || ' FROM ' || username_in;
|
||||
|
||||
DBMS_SQL.PARSE(v_Cursor, v_AlterUserString, DBMS_SQL.V7);
|
||||
v_Results := DBMS_SQL.EXECUTE(v_Cursor);
|
||||
|
||||
DBMS_SQL.close_cursor(v_Cursor);
|
||||
|
||||
END revoke_user;
|
||||
|
||||
|
||||
END webdba_util;
|
||||
/
|
||||
|
||||
show errors
|
||||
Reference in New Issue
Block a user