PostgreSQL은 스키마에 대한 모든 권한을 사용자에게 부여합니다.

Postgresqleun Seukima E Daehan Modeun Gwonhan Eul Sayongja Ege Buyeohabnida



데이터베이스는 중요하며 주어진 데이터베이스 내에서 사용자가 수행할 수 있는 다양한 역할을 제어하는 ​​것은 관리자의 작업입니다. 권한 부여의 일부로 관리자는 데이터베이스 내에서 사용자 엔터티를 정의하고 역할에 다양한 권한을 부여하거나 취소할 수 있습니다.

이렇게 하면 데이터베이스에 액세스할 수 있는 사람과 데이터베이스에 액세스할 수 있는 경우 그들이 갖는 권한을 제어할 수 있습니다. 예를 들어 데이터베이스 수정을 취소하거나 스키마에 대한 모든 권한을 지정된 테이블의 사용자에게 부여할 수 있습니다. 이 안내서는 PostgreSQL을 사용하여 사용자에게 스키마에 대한 모든 권한을 사용자에게 부여하는 방법을 자세히 설명합니다.







PostgreSQL에서 사용자에게 권한을 부여하는 방법

새 역할을 만들면 기본적으로 일부 권한이 부여됩니다. 그러나 대부분의 권한은 관리자가 스키마의 액세스 및 제어를 규제하기 위해 다른 사용자에게 권한을 부여해야 합니다. 모든 권한을 한 번에 또는 별도로 부여할 수 있습니다.



이 자습서에서는 새 역할 명명 된 리눅스힌트1 .



$ 스도 -아이유 포스트그레스
# 역할 생성 linuxhint1 로그인 비밀번호 'linuxhint';


우리는 다음으로 로그인되어 있습니다. 포스트그레스, PostgreSQL을 설치하면 생성되는 기본 역할입니다.






역할(사용자)이 생성되면 다음 명령을 사용하여 사용 가능한 역할을 나열할 수 있습니다.

# \ ~에서


사용 가능한 역할이 테이블 형식으로 표시됩니다.


포스트그레스 기본 역할이며 대부분의 권한이 이미 부여되었습니다. 그러나 새로운 역할, 리눅스힌트1, 부여할 때까지 권한이 없습니다.

1. 사용자에게 특정 권한 부여

생성된 역할은 허용하지 않는 한 스키마를 수정할 수 없습니다. 먼저 기본 역할로 테이블을 생성하여 이를 확인하고 포스트그레스

# 테이블 이름 생성 ( 항상 생성되는 m_id int ~처럼 ID, 이름 vachar ( 100 ) null이 아님, lname varchar ( 100 ) null이 아님, 연령 int ) ;



아래와 같이 사용 가능한 관계를 나열할 수 있습니다.


그런 다음 새 셸을 열고 다른 역할을 사용하여 PostgreSQL에 로그인합니다. 리눅스힌트1, 다음 명령을 사용하여 이전에 생성한

$ psql -에 리눅스힌트1 -디 포스트그레스



그만큼 -디 역할이 Postgres 데이터베이스를 사용하도록 지정합니다.

다음을 사용하여 만든 테이블의 내용을 읽으십시오. 고르다 명령.

# 고르다 * 이름에서;


그것은 권한 거부됨 사용자가 테이블에 액세스하는 것을 방해하는 오류입니다.


이러한 경우 다음 구문을 사용하여 주어진 테이블에서 데이터를 선택/확인할 수 있는 역할 권한을 부여해야 합니다.

# GRANT 권한 이름 ON 테이블 이름 TO 역할 이름;


권한을 부여하려면 Postgres 세션을 사용하십시오.


승인되면 이전 명령을 다시 실행하십시오.


그게 다야. 특정 사용자에게 선택 권한을 부여했습니다.

2. 스키마에 대한 모든 권한을 사용자에게 부여

지금까지 사용자에게 스키마에 대한 권한을 하나만 부여했습니다. 충분하지 않습니다. 삽입 및 업데이트와 같은 모든 권한을 부여하지 않으면 사용자는 스키마를 수정할 수 없습니다.

이를 달성하는 방법에는 여러 가지가 있습니다. 먼저 주어진 테이블에 대한 모든 권한을 사용자에게 부여 다음 구문을 사용합니다.

# GRANT ALL ON table_name TO role_name;



사용자는 특정 테이블과 상호 작용하고 수정할 수 있습니다. 그러나 스키마의 다른 테이블에서는 작동할 수 없습니다.

에게 특정 스키마의 모든 테이블에 대한 모든 권한 부여 , 다음 구문을 사용하십시오.

# schema_name TO role_name에 있는 스키마의 모든 테이블에 대한 모든 권한을 부여합니다.



마지막으로, 당신은 할 수 있습니다 지정된 역할에 스키마의 모든 테이블 삽입 또는 선택과 같은 특정 권한 부여 .

# 스키마 이름의 모든 테이블에서 권한 이름을 역할 이름으로 부여합니다.



역할은 지정된 스키마의 모든 테이블에서 데이터를 선택할 수 있습니다. 이것이 스키마에 대해 다른 사용자에게 부여할 권한을 정의하는 방법입니다.

결론

PostgreSQL은 강력한 DBMS입니다. 관리자가 사용자에게 다양한 권한을 부여하는 것을 포함하여 다양한 기능이 있습니다. 스키마에 대한 모든 권한을 사용자에게 부여한다는 것은 사용자가 지정된 스키마의 모든 테이블을 수정하고 상호 작용할 수 있도록 허용함을 의미합니다. 우리는 PostgreSQL에서 GRANT 문을 사용하여 스키마에 대한 권한을 역할에 부여하는 다른 방법을 적용하는 방법을 살펴보았습니다.