postgres에 대한 권한 부여 및 받기

소개



주니어 위치에 있는 모든 사람에게 짧고 편리한 가이드를 작성하고 있습니다. 특히 주니어 시스템 관리자라면 더욱 그렇습니다. 나는 종종 기본적인 작업을 수행하기 위해 특정 명령을 검색해야 하는 자신을 발견합니다. 다른 튜토리얼/게시물이 많다는 것을 충분히 알고 있지만 이 튜토리얼이 명확하고 도움이 되기를 바랍니다.

특권



Postgres는 12가지 유형의 권한을 제공합니다.
  • 선택
  • INSERT
  • 업데이트
  • 삭제
  • 자르기
  • 참조
  • 트리거
  • 만들기
  • 커넥트
  • 임시
  • 실행
  • 사용법

  • 명령



    이것은 내가 인프라 분석가로서 일상에서 가장 많이 사용하는 것을 기반으로 한 몇 가지 예입니다.
  • 일부 사용자에게 데이터베이스의 모든 권한을 부여하려면GRANT ALL PRIVILEGES IN your_database TO your_user;
  • 사용자 로그인을 허용하려면
  • GRANT CONNECT ON DATABASE your_database TO your_user;
  • 수퍼유저가 되려면
  • ALTER USER your_user WITH SUPERUSER;
  • 사용자가 데이터베이스를 생성할 수 있도록 하려면
  • ALTER USER your_user CREATEDB;
  • 스키마에서 권한 부여

  • GRANT USAGE ON SCHEMA schema_name TO your_user;
    GRANT SELECT, INSERT ON ALL TABLES IN SCHEMA schema_name TO username; 
    


  • 특정 테이블에 권한 부여
  • GRANT { SELECT | INSERT | UPDATE | REFERENCES } ON TABLE table_name TO your_user
  • 이것은 데이터베이스의 모든 스키마에서 권한을 부여하기 위한 것입니다(이를 수행하는 다른 방법이 있습니다)SELECT format('GRANT USAGE ON SCHEMA %I TO readonly_group;', schema_name) FROM information_schema.schemata \gexec
  • 이것은 모든 스키마의 모든 테이블에 대한 권한을 부여합니다(이를 수행하는 다른 방법도 있음)SELECT format('GRANT SELECT ON ALL TABLES IN SCHEMA %I TO readonly_group;', schema_name) FROM information_schema.schemata \gexec

  • 특권을 누리다



    우선 슈퍼유저로부터 권한을 제거하는 방법을 보여드리겠습니다.
    ALTER USER username WITH NOSUPERUSER;REVOKE 명령은 GRANT 와 유사한 구문으로 사용되며 권한을 취소한다는 차이점만 있습니다.


  • 역할/그룹에서 사용자 제거REVOKE role FROM user; 또는 ALTER GROUP group DROP USER user;
  • 사용자의 모든 권한 제거
  • REVOKE ALL PRIVILEGES ON table FROM user;

    결론



    이것은 살아있는 문서이고 나는 비판에 열려 있습니다. 아마도 새로운 발견으로 이것을 업데이트할 것입니다.

    참고문헌



    다음은 모든 PostgreSQL 명령에 대한 전체 안내서입니다(문서라고도 함) - https://www.postgresql.org/docs/13/sql-commands.html

    좋은 웹페이지 즐겨찾기