* ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π΄Π»Ρ PUBLIC, ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΡΠΌΠ΅Π½Π΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ FROM PUBLIC.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ REVOKE
Π£ΠΏΡΠΎΡΠ΅Π½Π½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΄Π»Ρ REVOKE Π²Π½Π΅ΡΠ½Π΅ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° GRANT. ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π’Π <ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ> Π·Π°ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° FROM <ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ?.
REVOKE <ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ>
ON <ΠΎΠ±ΡΠ΅ΠΊΡ>
FROM <ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ> ;
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ SELECT Π ΡΠ°Π±Π»ΠΈΡΠ΅ DEPARTMENT Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ KILROY, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠΈΠ» Π΅Π΅ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ GRANT SELECT:
REVOKE SELECT ON DEPARTMENT FROM KILROY;
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ UPDATE Π ΡΠ°Π±Π»ΠΈΡΠ΅ CUSTOMER Π΄Π»Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ
COUNT_BEANS:
REVOKE UPDATE ON CUSTOMER FROM PROCEDURE COUNT_BEANS;
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠ΄Π°Π»ΡΠ΅Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ EXECUTE, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ»Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ COUNT_BEANS Π ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ ABANDON_OLD:
REVOKE EXECUTE ON PROCEDURE ABANDON_OLD FROM PROCEDURE COUNT_BEANS;
ΠΠ»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ , Π½ΠΎ Π½Π΅ Π²ΡΠ΅Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅, ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΠ΅ ΡΠ΄Π°Π»ΡΠ΅ΠΌΡΠ΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ, ΠΎΡΠ΄Π΅Π»ΠΈΠ² ΠΈΡ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π° Π·Π°ΠΏΡΡΡΠΌΠΈ. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠ΄Π°Π»ΡΠ΅Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ INSERT ΠΈ UPDATE ΠΊ ΡΠ°Π±Π»ΠΈΡΠ΅ DEPARTMENT Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ SERENA:
REVOKE INSERT, UPDATE ON DEPARTMENT FROM SERENA;
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠ΄Π°Π»ΡΠ΅Ρ Π΄Π²Π΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ ΠΊ ΡΠ°Π±Π»ΠΈΡΠ΅ CUSTOMER Ρ Ρ ΡΠ°Π½ΠΈΠΌΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ COUNT_BEANS:
REVOKE INSERT, DELETE
ON CUSTOMER
FROM PROCEDURE COUNT_BEANS;
ΠΡΠ±Π°Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΡΠ°Π½Π΅Π΅ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ SELECT, INSERT, UPDATE, DELETE ΠΈΠ»ΠΈ REFERENCES ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠΌΠ΅Π½Π΅Π½Π° Π½Π°Π·Π½Π°ΡΠΈΠ²ΡΠΈΠΌ ΡΡΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ, Π½Π΅Π²Π°ΠΆΠ½ΠΎ, Π±ΡΠ»ΠΈ Π»ΠΈ ΠΎΠ½ΠΈ Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΠΎ, Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΈΠ»ΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ALL.
ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ GRANT, ΠΎΡΠΌΠ΅Π½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ REVOKE ALL ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ SELECT, INSERT, UPDATE, DELETE ΠΈ REFERENCES Π² ΠΎΠ΄Π½ΠΎΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ. ΠΠ°Π½Π½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΎΡΠΌΠ΅Π½ΠΈΡ Π»ΡΠ±ΠΎΠ΅ ΠΈΠ· ΡΡΠΈΡ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΎΡΠΌΠ΅Π½ΠΈΡ Π²ΡΠ΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°Π±Π»ΠΈΡΠ΅
DEPARTMENTS Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ MAGPIE:
REVOKE ALL ON DEPARTMENTS FROM MAGPIE;
ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π²ΡΠ΅Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ Π² ALL, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π½Π΅ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠΏΠ΅ΡΠ°ΡΠΎΡ REVOKE ALL ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠ΅ΡΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ, Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ REVOKE ALL Π΅ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΎΠ½ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ.
REVOKE ALL Π½Π΅ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ:
* ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ, Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΠΌΡΠ΅ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠΎΠ»ΡΡ;
* ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΊΠ°ΠΊ PUBLIC;
* ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ EXECUTE.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΎΡΠΌΠ΅Π½Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ EXECUTE ΠΊ Ρ ΡΠ°Π½ΠΈΠΌΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅:
REVOKE EXECUTE
ON PROCEDURE <ΠΈΠΌΡ-ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ>
FROM <ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ> [, <ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ> [, ...]]
| [TRIGGER <ΠΈΠΌΡ-ΡΡΠΈΠ³Π³Π΅ΡΠ°> [, <ΠΈΠΌΡ-ΡΡΠΈΠ³Π³Π΅ΡΠ°> [,...]]
[PROCEDURE <ΠΈΠΌΡ-ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ> [, <ΠΈΠΌΡ-ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ> [, ...]]
[VIEW <ΠΈΠΌΡ-ΠΏΡΠΎΡΠΌΠΎΡΡΠ°> [, VIEW <ΠΈΠΌΡ-ΠΏΡΠΎΡΠΌΠΎΡΡΠ°> [, ...]];
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠ΄Π°Π»ΡΠ΅Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ EXECUTE Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ HPOTTER ΠΊ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ COUNT_CHICKENS:
REVOKE EXECUTE ON PROCEDURE COUNT_CHICKENS FROM HPOTTER;
ΠΡΠΌΠ΅Π½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»ΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π² ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ FROM ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° REVOKE, ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π·Π°ΠΏΡΡΡΠΌΠΈ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠ΄Π°Π»ΡΠ΅Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ INSERT ΠΈ UPDATE ΠΊ ΡΠ°Π±Π»ΠΈΡΠ΅ DEPARTMENTS Ρ ΡΡΠΎΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π·Π° ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·:
REVOKE INSERT, UPDATE
ON DEPARTMENTS
FROM MAGPIE, BRUNHILDE, KILROY;
ΠΡΠΌΠ΅Π½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΡΠΎΠ»ΠΈ, ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΡΡΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Ρ Π²ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡΡ ΡΠΎΠ»Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ:
REVOKE UPDATE
ON DEPARTMENT
FROM CARTEBLANCHE;
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ, ΠΊΠΎΡΠΎΡΡΠΌ Π±ΡΠ»Π° Π½Π°Π·Π½Π°ΡΠ΅Π½Π° ΡΠΎΠ»Ρ CARTEBLANCHE, Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ UPDATE ΠΊ ΡΠ°Π±Π»ΠΈΡΠ΅ DEPARTMENT, Π½ΠΎ Ρ Π½ΠΈΡ ΠΎΡΡΠ°ΡΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ (SELECT, INSERT, DELETE, REFERENCES, EXECUTE), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ΠΈ ΠΌΠΎΠ³Π»ΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΎΡ
CARTEBLANCHE.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ ΠΎΠ΄Π½ΠΈΡ ΠΈ ΡΠ΅Ρ ΠΆΠ΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ»Π΅ΠΉ:
REVOKE DELETE, INSERT
ON DEPARTMENT
FROM CARTEBLANCHE, MAITRE_D;
ΠΡΠΌΠ΅Π½Π° Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ ΡΠΎΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ Ρ ΡΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π²ΡΠ΅ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Ρ ΡΡΠΎΠΉ ΡΠΎΠ»ΡΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ REVOKE Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠΎΠ»ΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Π½Π°Π·Π½Π°ΡΠ°Π»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΎΠ»Ρ
CARTEBLANCHE Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ KILROY:
REVOKE CARTEBLANCHE FROM KILROY;
KILROY Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ Π΄ΠΎΡΡΡΠΏΠ°, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΊΠ°ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π΅Π³ΠΎ ΡΠ»Π΅Π½ΡΡΠ²Π° Π² ΡΡΠΎΠΉ ΡΠΎΠ»ΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ Π½Π΅ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π²Π»ΠΈΡΠ½ΠΈΡ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΡΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ ΡΠ΅ΡΠ΅Π· ΡΠ»Π΅Π½ΡΡΠ²ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΠΎΠ»ΠΈ.
ΠΠ»Ρ ΠΎΡΠΌΠ΅Π½Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡ, ΡΡΠΈΠ³Π³Π΅ΡΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠΎΠ² Π²ΠΊΠ»ΡΡΠΈΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ (PROCEDURE, TRIGGER, VIEW) ΠΏΠ΅ΡΠ΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π·Π°Π΄Π°Π² ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π·Π°ΠΏΡΡΡΠΌΠΈ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΡΡΠΎ Π½Π°ΡΠ½ΠΈΡΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Ρ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° ΡΠΈΠΏΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠ΄Π°Π»ΡΠ΅Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ INSERT ΠΈ UPDATE Π ΡΠ°Π±Π»ΠΈΡΠ΅ CUSTOMER Π΄Π»Ρ Π΄Π²ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΠΈ ΡΡΠΈΠ³Π³Π΅ΡΠ°:
REVOKE INSERT, UPDATE
ON CUSTOMER
FROM PROCEDURE COUNT_CHICKENS, ABANDON_OLD
TRIGGER AI_SALES ;
ΠΠ»Ρ ΠΎΡΠΌΠ΅Π½Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ PUBLIC, ΠΏΡΠΎΡΡΠΎ ΡΡΠ°ΠΊΡΡΠΉΡΠ΅ PUBLIC, ΠΊΠ°ΠΊ ΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΡ INSERT ΠΈ DELETE Π ΡΠ°Π±Π»ΠΈΡΠ΅ DEPARTMENT Ρ Π²ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ:
REVOKE SELECT, INSERT, UPDATE
ON DEPARTMENT
FROM PUBLIC;
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ INSERT ΠΈ DELETE Π ΡΠ°Π±Π»ΠΈΡΠ΅ DEPARTMENT ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Ρ Π²Π»Π°Π΄Π΅Π»ΡΡΠ° ΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ ΠΈ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ SYSDBA, ΡΠ°Π²Π½ΠΎ ΠΊΠ°ΠΊ ΠΈ Ρ ΠΈΠΌΠ΅Π²ΡΠΈΡ ΡΡΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Ρ ΡΠ°Π½ΠΈΠΌΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ, ΠΏΡΠΎΡΠΌΠΎΡΡΠΎΠ² ΠΈ ΡΡΠΈΠ³Π³Π΅ΡΠΎΠ². ΠΡΠΌΠ΅Π½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ Ρ PUBLIC ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ ΡΠ±ΠΈΡΠ°Π΅Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΈΡ ΠΊΠ°ΠΊ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΡΠ°Π²Π°.
ΠΡΠΌΠ΅Π½Π° ΠΏΡΠ°Π²Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ
ΠΠ»Ρ ΠΎΡΠΌΠ΅Π½Ρ ΠΏΡΠ°Π²Π° Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ, Π½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Ρ Π½Π΅Π³ΠΎ ΡΡΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ REVOKE GRANT OPTION:
REVOKE GRANT OPTION
FOR <ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ> [, <ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ> [,...]]
ON <ΡΠ°Π±Π»ΠΈΡΠ°> | <ΠΎΠ±ΡΠ΅ΠΊΡ>
FROM <ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ> ;
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΠΏΡΠ°Π²ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ SELECT ΠΊ ΡΠ°Π±Π»ΠΈΡΠ΅ DEPARTMENT Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ HPOTTER ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ Ρ Π½Π΅Π³ΠΎ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ SELECT:
REVOKE GRANT OPTION
FOR SELECT
ON DEPARTMENT
FROM HPOTTER;
ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΊΠ°ΡΠΊΠ°Π΄Π½ΡΠΌ ΠΎΡΠΌΠ΅Π½Π°ΠΌ Ρ Π²ΡΠ΅Ρ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΏΡΠ°Π²ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΡΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ ΠΎΡ HPOTTER.
Π‘ΠΊΡΠΈΠΏΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ
ΠΡΠ»ΠΈ Π²Ρ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Π·Π°Π΄Π΅ΡΠΆΠ°Π»ΠΈΡΡ Π½Π° ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅, Π½Π΅Ρ ΡΠΎΠΌΠ½Π΅Π½ΠΈΠΉ, ΡΡΠΎ Π²Ρ ΠΏΡΠΈΡΠ»ΠΈ ΠΊ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ SQL ΡΡΠ΅Π±ΡΠ΅Ρ Π½Π°Π±ΠΎΡΠ° Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΌΠ° ΡΠ΅ΠΊΡΡΠ°. Π§ΡΠΎ ΠΆ, Π²Ρ ΠΏΡΠ°Π²Ρ. Π Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΌΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΠ°Π±ΠΎΡΡ. ΠΡ ΠΏΠΈΡΠ΅ΠΌ ΡΠΊΡΠΈΠΏΡΡ - ΠΈΠ»ΠΈ, ΠΈΠ½Π°ΡΠ΅, ΠΌΡ ΠΏΠΈΡΠ΅ΠΌ Ρ ΡΠ°Π½ΠΈΠΌΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΈΡΡΡ Π΄Π»Ρ Π½Π°Ρ ΡΠΊΡΠΈΠΏΡΡ.
ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π΅ΡΠ»ΠΈ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ Ρ ΠΎΡΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΡΡ ΡΡ Π΅ΠΌΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΊΡΠΈΠΏΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΡΠΌΠΈΡΡΡΡ ΡΠΎΠ»ΠΈ ΠΈ ΠΎΠ±ΡΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΡ. ΠΠ±ΡΡΠ½ΠΎ Π²ΡΡΡΠ½ΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΡΠΊΡΠΈΠΏΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ EXECUTE, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΡΠΆΠ½ΡΡ ΡΠΎΡΠΌΡΠ»Ρ.
Π‘ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Π² Firebird 1.5 ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° EXECUTE PROCEDURE, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΠΎΠ±ΠΎΠΉΡΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π² Firebird Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² DDL Π² PSQL, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π³ΡΡΠΏΠΏΠΎΠ²ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ ΠΏΡΡΠΌΠΎ Π² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈΠ· Ρ ΡΠ°Π½ΠΈΠΌΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ. ΠΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 35.2 Π΄Π°Π»Π΅Π΅ Π² ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ ΠΈΡ Π»ΡΠ±ΠΈΡ. Π£ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° Π΅ΡΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΡΠΌΠΈΡΡΡΡΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ; Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π²Π°Ρ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΠ°
ΠΠ²ΡΠΎΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΊΡΠΈΠΏΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ. ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ ΠΈ Π°Π½Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½, ΠΎΠ½ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠΌ, Π½ΡΠΆΠ½ΡΠΌ Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²Π°, ΠΈ Π΄Π°ΡΡΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Ρ Π΄Π»Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 35.1.
ΠΠ»Ρ ΡΠΊΡΠΈΠΏΡΠ° ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΡΠ°ΠΉΠ», Π² ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ ΡΠΊΡΠΈΠΏΡ - ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠΌ. Π² Π³Π»Π°Π²Π΅ 16, ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π² Π³Π»Π°Π²Π΅ 30. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° PERMSCRIPT, ΠΎΠΏΠΈΡΠ°Π½Π½Π°Ρ Π·Π΄Π΅ΡΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π° Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² isql ΠΈ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΅Π΅ Π²ΡΡ ΠΎΠ΄Π° Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ».
ΠΠΈΡΡΠΈΠ½Π³ 35.1. ΠΡΠΎΡΠ΅Π΄ΡΡΠ° Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΠΊΡΠΈΠΏΡΠ° ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ
/* (Ρ) Helen Borrie 2004, free for use and inodxfication
under the Initial Developer's Public License */
SET TERM ^
CREATE PROCEDURE PERMSCRIPT(
CMD VARCHAR (6) ,/* Π²Π²Π΅Π΄ΠΈΡΠ΅ 'G' or 'R' */
PRIV CHAR (10) , /* ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ ΠΈΠ»ΠΈ 'ALL' ΠΈΠ»ΠΈ 'ANY' */
USR VARCHAR(31), /* ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ */
ROLENAME VARCHAR(31), /* ΡΠΎΠ»Ρ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ°Ρ ΠΈΠ»ΠΈ Π½Π΅Ρ */
GRANTOPT SMALLINT,
/* 1 Π΄Π»Ρ 'WITH GRANT[ADMIN] OPTION' */
CREATE ROLE SMALLINT) /* 1 Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠΉ ΡΠΎΠ»ΠΈ ROLENAME */
RETURNS (PERM VARCHAR(80)) /* ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΡ */
AS
DECLARE VARIABLE RELNAME VARCHAR (31); /* Π΄Π»Ρ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°Π±Π»ΠΈΡΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° */
DECLARE VARIABLE STRING VARCHAR(80) = ''; /* ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ */
DECLARE VARIABLE STUB VARCHAR(60) = ''; /* ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ */
DECLARE VARIABLE VUSR VARCHAR(31) ; /* ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π»Ρ 'TO' ΠΈΠ»ΠΈ 'FROM' */
DECLARE VARIABLE COMMENTS CHAR(20) = '/* */';
BEGIN
/* ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠ² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° */