[디린이] Postgresql13 DB계정 권한 변경하는 방법 0 2 1,856

by 디리린 [DB 기타] psql postgre postgresql [2022.12.26 17:38:00]


안녕하세요. DB를 처음 공부하고 실습하고있는 디린이입니다. "sqladmin" 이라는 DB계정을 DDL 문으로 생성했습니다. (CREATE USER) 생성했습니다 

그런데 이 계정이 DB에 대한 위험명령어 (DROP TABLE, DROP DB) 을 실행못하게 이러한 DDL 명령 권한을 제거하고싶은데요.

 

구글링해보면 REVOKE 명령어가 이러한 권한을 제어한다고하는데, 이는 DML (Delete, Insert, Select 등) 에 대한 권한만 제어하는 것 같습니다. 저는 한단계 위인 DROP 단계의 권한을 제거하고싶습니다.

 

\du 으로 계정 권한속성 확인해보면 "sqladmin" 계정에 대해 superuser, createrole, createdb 권한은 삭제해놓은 상태인데도,

DROP TABLE이 수행가능하여 어떻게 권한을 제거해야할지 모르겠습니다. 아시는분계시면 디린이를 도와주시면 감사드리겠습니다..

by 포동푸우 [2022.12.27 11:58:28]

Postgresql 에서도 REVOKE 로 Delete, Insert, Select 외 다양한 권한들을 회수 할 수 있습니다. 

  - https://www.postgresql.org/docs/current/sql-revoke.html 

  - REVOKE CREATE ON TABLESPACE tablespace_name ~~~ , REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA public FROM user_name ;  등 ....

Drop 은 Postgresql 메카니즘에서 자신의 Object 에서는 자동 할당되고 회수할 수 없는 권한으로 보이네요    

  - https://www.postgresql.org/docs/current/sql-grant.html#SQL-GRANT-DESCRIPTION-OBJECTS

    > There is no need to grant privileges to the owner of an object ~~~~~

    > The right to drop an object, or to alter its definition in any way, is not treated as a grantable privilege ~~~~~ 

 


by 마농 [2022.12.27 13:19:30]

트리거는 크게 행트리거와 문장트리거로 나뉘는데
문장트리거를 이용해 제어가 가능할 것으로 보입니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입