Loading...
MySQL 9.5 Reference Manual 9.5의 27.2.2 Stored Routines and MySQL Privileges의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
MySQL 권한 시스템은 저장 루틴을 다음과 같이 고려합니다:
저장 루틴을 생성하려면 CREATE ROUTINE 권한이 필요합니다.
저장 루틴을 변경하거나 drop하려면 ALTER ROUTINE 권한이 필요합니다. 이 권한은 필요할 경우 루틴 생성자에게 자동으로 부여되며, 루틴이 drop될 때 생성자로부터 제거됩니다.
저장 루틴을 실행하려면 EXECUTE 권한이 필요합니다. 그러나 이 권한은 필요할 경우 루틴 생성자에게 자동으로 부여되며 (그리고 루틴이 drop될 때 생성자로부터 제거됩니다). 또한 루틴에 대한 기본 SQL SECURITY 속성은 DEFINER이며, 이는 루틴이 연관된 데이터베이스에 접근 권한을 가진 사용자가 루틴을 실행할 수 있게 해 줍니다.
automatic_sp_privileges 시스템 변수 값이 0이면, EXECUTE 및 ALTER ROUTINE 권한은 루틴 생성자에게 자동으로 부여되거나 제거되지 않습니다.
루틴의 생성자는 그 루틴에 대해 CREATE 문을 실행하는 데 사용된 계정입니다. 이는 루틴 정의에서 DEFINER로 명명된 계정과 같지 않을 수 있습니다.
루틴의 DEFINER로 명명된 계정은 루틴 정의를 포함한 모든 루틴 속성을 볼 수 있습니다. 따라서 이 계정은 다음에 의해 생성되는 루틴 출력에 대한 완전한 액세스 권한을 가집니다:
Information Schema의 ROUTINES 테이블 내용.
루틴의 DEFINER로 명명된 계정이 아닌 다른 계정의 경우, 루틴 속성에 대한 액세스는 그 계정에 부여된 권한에 따라 달라집니다:
SHOW_ROUTINE 권한 또는 글로벌 SELECT 권한이 있는 경우, 계정은 루틴 정의를 포함한 모든 루틴 속성을 볼 수 있습니다.
루틴을 포함하는 스코프에서 부여된 CREATE ROUTINE, ALTER ROUTINE 또는 EXECUTE 권한이 있는 경우, 계정은 루틴 정의를 제외한 모든 루틴 속성을 볼 수 있습니다.
27.2.1 Stored Routine Syntax
27.2.3 Stored Routine Metadata