programing

MySQL 저장 프로시저 권한

telecom 2023. 10. 27. 21:45
반응형

MySQL 저장 프로시저 권한

사용자가 데이터베이스에 저장된 프로시저를 실행하는 대신 MySQL 데이터베이스에 저장된 프로시저 수준에서 저장 프로시저를 실행할 수 있는 권한을 사용자에게 부여하려고 합니다.다음 코드를 실행하려고 했습니다.

GRANT EXECUTE ON myDB.spName TO 'TestUser'@'localhost';

하지만 계속해서 다음과 같은 오류가 나타납니다.

Illegal GRANT/REVOKE command, please consult the manual to see which privileges can be used.

다음과 같이 변경하려고 했습니다.

GRANT EXECUTE ON PROCEDURE myDB.spName TO 'TestUser'@'localhost';

그리고 다음과 같은 다른 오류가 발생합니다.

Cant find any matching rows in the user table.

제가 어디가 잘못되었는지 헷갈리네요?

또한 MySQL Workbench에서는 GUI를 통해 저장 프로시저 레벨에서 권한을 부여할 수 있는 방법이 없는 것 같습니다.이게 맞나요, 아니면 제가 뭔가를 놓치고 있는 건가요?

미리 감사드립니다.

두 번째 시도는 올바른 접근 방식입니다.

GRANT EXECUTE ON PROCEDURE myDB.spName TO 'TestUser'@'localhost';

그래도 안 되면 확인...

a) 사용자(이 모든 명령을 실행 중인 사용자)는 [WITH GRANT Option] 권한을 가집니다.당신이 뿌리라면, 당신은 허가권을 가지고 있습니다.

b) 실행 권한을 부여하는 사용자가 존재합니다.

 select user from mysql.user where user  like  'test%';

그렇지 않은 경우 사용자를 만듭니다.

CREATE USER 'TestUser'@'localhost' IDENTIFIED BY 'passwordxxxx';
#depending on your needs
GRANT SELECT,DELETE,UPDATE PRIVILEGES ON myDb.* TO 'TestUser'@'localhost'; 

도움이 되길 바라요 :)

MySQL Workbench 관련 질문의 다른 부분에 대한 답변을 드리자면, 저도 같은 문제가 있었습니다.그러나 실험 결과 역할을 생성하고 하단의 권한 탭을 열면 루틴을 모델 개요에서 개체 상자로 끌 수 있음을 알게 되었습니다.여기서 새로 추가된 개체를 클릭하고 해당 역할에 대해 원하는 권한을 추가하기만 하면 됩니다.

도움이 되길 바라요 :)

저장 프로시저에 대한 권한을 부여하는 코드를 찾았습니다.

USE [Database];   

GRANT EXECUTE ON OBJECT::[dbo].[your stored procedure]
    TO databaseUser; 

이 페이지에서: learn.microsoft.com

언급URL : https://stackoverflow.com/questions/10089308/mysql-stored-procedure-permissions

반응형