하나의 데이터베이스에서만 기능을 실행할 수있는 사용자를 만들고 싶습니다. 데이터베이스의 소스 함수, 프로 시저, 선택 등을 볼 수 없습니다.한 사용자 만 권한으로 권한을 가진 postgresql을 수행하십시오
감사합니다.
하나의 데이터베이스에서만 기능을 실행할 수있는 사용자를 만들고 싶습니다. 데이터베이스의 소스 함수, 프로 시저, 선택 등을 볼 수 없습니다.한 사용자 만 권한으로 권한을 가진 postgresql을 수행하십시오
감사합니다.
이 그것을 수행해야합니다
은 사용자가 두 데이터베이스 개체에 대한 권한 만 올바른 데이터베이스에 연결할 수 있도록 허용 또는 (당신은 REVOKE
첫째 기본적으로 PUBLIC
에 부여 된 CONNECT
특권이) pg_hba.conf
에 적절한 항목이 있습니다.
사용자가 연결할 수있는 데이터베이스에서 함수가 들어있는 스키마에 USAGE
특권이 있어야합니다.
필요한 개체에 액세스 할 수있는 권한이있는 사용자에게 속한 SECURITY INVOKER
함수를 만듭니다.
REVOKE EXECUTE
모든 기능은 PUBLIC
및 GRANT
에서 사용자에게 필요에 따라 제공됩니다.
PostgreSQL에서 로그인 할 수있는 사용자가 기능의 소스 코드를 보지 못하게하는 방법은 없습니다. REVOKE SELECT ON pg_proc FROM PUBLIC
을 시도 할 수 있지만 pgAdmin 또는 psql
과 같은 클라이언트 프로그램에 문제가 발생하면 놀라지 마십시오.
덕분에 @ laurenz-albe, 나는 그것을 시도 할 것이다! – aispobla