看来我缺少了一些东西。我似乎无法在存储过程中使用revoke。

CREATE PROCEDURE revokeRight
AS
BEGIN
    REVOKE ALL ON Barang FROM WorkerA;
END;

最佳答案

您不能在PL/SQL块中直接使用REVOKE语句,需要使用 EXECUTE IMMEDIATE :

CREATE or replace PROCEDURE revokeRight
AS
BEGIN
    EXECUTE IMMEDIATE 'REVOKE ALL ON Barang FROM WorkerA';
END;
/

我不建议在PL/SQL内部使用DCL命令来即时授予/吊销。在这样做之前,您需要谨慎。

10-06 09:43