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
'programing' 카테고리의 다른 글
팬더 읽기 _excel: 'utf-8' 코덱이 위치 14에서 바이트 0xa8을 디코딩할 수 없음: 잘못된 시작 바이트 (0) | 2023.11.01 |
---|---|
Oracle 정점에서 한 페이지를 다른 페이지에 연결 (0) | 2023.10.27 |
JQuery 클래스 이름별로 모든 요소 가져오기 (0) | 2023.10.27 |
ASP.NET 코어, 권한 없는 경우 기본 리디렉션 변경 (0) | 2023.10.27 |
git gui'를 실행할 때 "Loose Object" 팝업을 건너뛰는 방법 (0) | 2023.10.27 |