grant revoke 예제

사용자에게 부여된 권한 확인: 테이블에서 사용자에게 부여된 권한을 보려면 SHOW GRANTS 문이 사용됩니다. “Amit”이라는 사용자에게 부여된 권한을 확인하고 호스트를 “localhost”로 지정하려면 다음 SHOW GRANTS 문이 실행됩니다. 표 수준 권한에 대한 REVOKE 문이 부여된 경우 수혜자 및 테이블 ID에 종속된 모든 개체가 삭제됩니다. 예를 들어 user1이 사용자2에서 테이블 t1에서 DELETE 권한을 취소하는 경우 GRANTEE(user2) TABLEID(user1.t1)에 대한 SYSTABLEPERMS의 행은 REVOKE 문에 의해 수정됩니다. 종속성 관리자는 뷰 user2.v1에 취소 무효화 메시지를 보내고 뷰가 GRANTEE(user2), TABLEID(user1.t1)에 대한 DELETE 권한에 종속되지 않더라도 뷰가 삭제됩니다. ROLE 테스트에서 CREATE TABLE 권한을 취소하려면 다음과 같은 역할을 작성할 수 있습니다. 데이터베이스에 많은 사용자가 있는 경우 사용자에게 권한을 부여하거나 취소하기가 어려워집니다. 따라서 역할을 정의하는 경우 사용자에게 권한을 부여하거나 해지하여 자동으로 권한을 부여하거나 취소할 수 있습니다. 역할을 만들거나 오라클에서 미리 정의한 시스템 역할을 사용할 수 있습니다.

뷰, 트리거 및 제약 조건의 경우 개체가 종속된 권한이 취소되면 개체가 자동으로 삭제됩니다. Derby는 해지되는 권한을 대체할 수 있는 다른 권한이 있는지 확인하려고 하지 않습니다. 자세한 내용은 Java DB 개발자 가이드의 “SQL 표준 권한 부여 사용” 및 “보기, 트리거 및 제약 조건에 대한 권한”을 참조하십시오. 위의 예에서 “*” 기호는 테이블 “사용자”의 모든 사용자에게 select 권한을 부여하는 데 사용됩니다. 역할, 사용자 또는 PUBLIC에서 역할을 해지할 수 있습니다. 권한 검사는 문 실행 시간에 발생하므로 해지 작업 후에도 준비된 문을 계속 사용할 수 있습니다. 세션에 대해 충분한 권한을 여전히 사용할 수 있으면 준비된 문이 실행되고 쿼리의 경우 결과 집합이 반환됩니다. “프랭크에게 파는 것을 허락하고, 프리츠의 이름으로 관리자 옵션을 부여”, 하지만 “관리자 옵션프랭크에 부여 파는 – 모든 프리츠의 이름으로”를 의미하지 않는다. 예: 직원에게 SELECT를 user1에 부여합니다. 이 명령은 user1에 직원 테이블에 SELECT 권한을 부여합니다. 예를 들어 WITH GRANT 옵션을 사용하여 직원 테이블에 SELECT 권한을 부여한 경우 사용자 1은 사용자 2 등과 같은 다른 사용자에게 직원 테이블에서 SELECT 권한을 부여할 수 있으므로 부여해제 옵션을 신중하게 사용해야 합니다.