PostgreSQL 역할 대 사용자, 권한 부여


27

현재 새 프로젝트를 통해 PostgreSQL과 MySQL의 차이점을 배우고 있으며 기존 소프트웨어를 MySQL에서 PostgreSQL로 마이그레이션하려고합니다. 실제로 둘 사이의 명령 (사용자 / 데이터베이스 / 명령 프롬프트 등)을 비교하여 HTML 테이블을 만들기 시작했습니다. 여기 에서 답변을 읽은 후에 role그룹으로 사용되는 것으로 보입니다. MySQL과 나는 두 명의 사용자, 기본적으로 공공 (이 DELETE, INSERT, SELECTUPDATE권한)과 몇 가지 추가 권한이있는 관리 사용자를.

기본적으로 Windows 7 명령 프롬프트에서 (로컬 개발 전용) ...

  • 사용자, 그룹 또는 느슨하게 사용되는 역할이 PostgreSQL에만 해당됩니까?
  • 데이터베이스의 모든 테이블에 대해 특정 사용자에게 특정 권한 만 부여하려면 어떻게합니까 ?
  • 데이터베이스의 모든 테이블에 대해 특정 사용자 에게 모든 권한을 부여하려면 어떻게합니까 ?
  • 사용 권한 GRANT또는 REVOKE사용자 권한에 대해 역할이 사용자와 어떻게 비교 됩니까?

답변:


48

역할 엔티티하다는 사용자 및 / 또는 그룹으로서 기능 할 수는. 역할 WITH LOGIN은 사용자로 사용할 수 있습니다. 즉, 로그인 할 수 있습니다. 로그인 할 수있는 역할을 포함하여 모든 역할이 그룹으로 작동 할 수 있습니다. 따라서 "사용자"와 "그룹"은 본질적 으로 역할 의 의도 된 사용법 을 나타내는 용어이며 , 이들 사이에는 실제적인 구분이 없습니다. SQL의 PostgreSQL 버전에서도 두 개는 동의어로 사용됩니다. 예를 들어, 설명서에는 다음과 같은 CREATE USER내용이 있습니다.

CREATE USER는 이제 CREATE ROLE의 별명입니다.

모두 부여 ...에 대한 매뉴얼을 참조하십시오GRANT . 실제로 데이터베이스의 모든 테이블ALL TABLES IN SCHEMA public아닌 권한을 부여하려고 합니다.

예를 들어 일부 권한을 부여하는 것은 ... 동일하지만 사용하지 GRANT ALL마십시오 GRANT SELECT, INSERT. 다시, 설명서를 참조하십시오.

역할 사용자 및 / 또는 그룹입니다. 역할이 전부이기 때문에 역할에만 부여 할 수 있습니다.


좋은 설명!
sharadov

그렇다면 ... schema public의 모든 테이블에 모든 권한을 부여하는 구문은 무엇입니까?
AlxVallejo

@AlxVallejo 이것이 도움이 될 것 입니다. 상단 링크를 시도하거나 GRANT목록이 있는 설명서 페이지를 읽으십시오ALL TABLES IN SCHEMA
Craig Ringer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.