복붙노트

[SQL] 임의의 사용자가보기에 모든 권한을 부여하는 방법

SQL

임의의 사용자가보기에 모든 권한을 부여하는 방법

당신은 어떻게 임의의 사용자에게 모든 기능 및보기에 읽기 / 선택에 대한 액세스 권한을 부여합니까?

나는 여러 가지 기능과보기를 만들 psql의 --user = 포스트 그레스 -d MYDB -f myview.sql를 사용하고 난 실행

GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;

모든 권한을 부여하는 데, 나는 참고 MyUser 이제 포스트 그레스의 사용자가 만든 함수 및 뷰에 액세스 할 수 있도록 기대. 나는 시도하고 참고 MyUser와 접근을 때, 나는 "관계에 대한 거부 권한을 ..."오류가 발생합니다. 왜 이런거야?

해결법

  1. ==============================

    1.그 이유는 당신이보기 또는 테이블에 액세스하기 위해 추가 권한이 필요하다는 것입니다. 데이터베이스에 대한 권한은 모든 개체에 대한 액세스를 포함하지 않습니다.

    그 이유는 당신이보기 또는 테이블에 액세스하기 위해 추가 권한이 필요하다는 것입니다. 데이터베이스에 대한 권한은 모든 개체에 대한 액세스를 포함하지 않습니다.

    그것은 기능과 다릅니다 권한은 기본적으로 대중에게 부여됩니다 실행합니다. 그러나이 기능은 현재 사용자의 권한으로 실행됩니다. 당신은 기능을 CREATE에 대한 보안 DEFINER 수정에 관심이있을 수 있습니다. 그러나 일반적으로는 관련 테이블에 SELECT 권한을 부여하기에 충분하다.

    기본 권한에 대한 문서 별 :

    당신이 DDL 명령에 관심이있을 수 있습니다 (나중에 포스트 그레스 9.0 이상 필요) :

    GRANT SELECT ON ALL TABLES IN SCHEMA public TO myuser;
    

    문제의 데이터베이스에 연결되어있는 동안, 물론 (@ 아래 마르셀의 의견을 참조), 충분한 권한이있는 사용자로 로그인합니다. 당신은 또한 설정 DEFAULT의 특권에 관심이있을 수 있습니다 :

    더 많은 방법 권한을 관리하는 대답을 자세히 설명 :

    pgAdmin는보다 정교한 대량 작업을위한 기능이 있습니다 :

    또는 당신은 대량 부여 / 해지에 대한 DDL 문을 생성하는 시스템 카탈로그를 조회 할 수 있습니다 ...

  2. from https://stackoverflow.com/questions/10491208/how-to-grant-all-privileges-on-views-to-arbitrary-user by cc-by-sa and MIT license