이 가이드에서는 슈퍼유저가 아닌 사용자로 PostgreSQL에서 데이터베이스를 생성하고, 필요한 권한을 할당하고, 다음 작업을 수행할 수 있는지 확인하는 단계를 안내합니다. 수퍼유저로 로그인할 필요 없이 항상 새로 생성된 데이터베이스에 연결하세요.
이 기능은 모든 작업에 대해 관리 권한이 필요 없이 PostgreSQL에서 자신의 데이터베이스를 관리하려는 개발자나 사용자에게 유용합니다.
1.새 데이터베이스를 생성합니다(거북이-데모).
2.수퍼유저가 아닌 역할(테스트 사용자)에게 데이터베이스를 생성하고 액세스할 수 있는 권한을 부여합니다.
3.수퍼유저로 먼저 전환할 필요 없이 원활하게 데이터베이스로 전환(tortoise-demo)합니다.
4.테스트 사용자로 로그인할 때 항상 tortoise-demo에 자동으로 연결하도록 PostgreSQL을 구성합니다.
수퍼유저가 아닌 사용자로 데이터베이스를 생성하기 전에 자신의 역할(이 경우 testuser)이 데이터베이스를 생성할 수 있는 적절한 권한을 가지고 있는지 확인해야 합니다.
기본적으로 새로 생성된 PostgreSQL 역할에는 데이터베이스를 생성할 수 있는 권한이 없습니다. 슈퍼유저(예: postgres)로 로그인한 경우 테스트유저 역할에 필요한 권한을 부여할 수 있습니다.
1.슈퍼유저로 로그인(예: postgres):
psql -U postgres
2.테스트 사용자에게 CREATEDB 권한 부여:
테스트 사용자가 새 데이터베이스를 생성할 수 있도록 다음 SQL 쿼리를 실행하세요.
GRANT CREATEDB TO "testuser";
이렇게 하면 테스트 사용자가 슈퍼유저 권한 없이도 데이터베이스를 생성할 수 있습니다.
3.수퍼유저 세션 종료:
\q
이제 testuser 역할에 CREATEDB 권한이 있으므로 testuser로 로그인하여 새 데이터베이스를 생성할 수 있습니다.
testuser 역할로 로그인하려면 다음 명령을 실행하세요.
psql -U "testuser" -d postgres -W
로그인한 후 새 데이터베이스 tortoise-demo를 만듭니다.
CREATE DATABASE "tortoise-demo";
이 명령은 tortoise-demo라는 새 데이터베이스를 생성합니다.
testuser가 데이터베이스에 대한 모든 권한을 갖도록 하려면 데이터베이스 소유권을 testuser에게 할당할 수 있습니다.
psql -U postgres
이 단계는 선택 사항이지만 testuser 역할이 tortoise-demo 데이터베이스에 대한 전체 관리 제어 권한을 갖도록 보장합니다.
데이터베이스를 생성한 후 새로 생성된 데이터베이스로 전환(거북이 데모)하여 작업을 시작할 수 있습니다.
Tortoise-demo에 연결하려면 다음을 실행하세요.
GRANT CREATEDB TO "testuser";
c 명령은 현재 세션을 tortoise-demo 데이터베이스로 전환합니다. 이제부터 SQL 쿼리를 실행하고 데이터베이스를 관리할 수 있습니다.
이제 tortoise-demo 데이터베이스를 성공적으로 생성하고 전환했으므로 다음 단계는 이 프로세스를 자동화하는 것입니다. 특히, 우리는 folasayoolayemi로 로그인할 때마다 명시적으로 전환할 필요 없이 자동으로 tortoise-demo 데이터베이스에 연결되도록 PostgreSQL을 구성하려고 합니다.
항상 tortoise-demo 데이터베이스에 연결되도록 하는 쉬운 방법 중 하나는 PGDATABASE 환경 변수를 설정하는 것입니다. 이 변수는 연결 시 기본적으로 사용할 데이터베이스를 PostgreSQL에 알려줍니다.
1.현재 세션에 대한 PGDATABASE 설정:
현재 터미널 세션에서 다음과 같이 환경 변수를 설정할 수 있습니다.
\q
이렇게 하면 이후에 실행하는 모든 psql 명령이 기본적으로 tortoise-demo에 자동으로 연결됩니다.
2.변경 사항을 영구적으로 적용:
이 변경 사항이 터미널 세션 전반에 걸쳐 지속되도록 하려면 셸의 구성 파일(.bashrc, .zshrc 등)에 내보내기 명령을 추가하세요.
예를 들어 bash를 사용하는 경우 ~/.bashrc 파일에 다음 줄을 추가하세요.
psql -U "testuser" -d postgres -W
그런 다음 다음을 실행하세요.
CREATE DATABASE "tortoise-demo";
이렇게 하면 새 터미널 세션을 열 때마다 PostgreSQL이 데이터베이스를 지정할 필요 없이 자동으로 tortoise-demo에 연결됩니다.
PGDATABASE 환경 변수를 사용하지 않으려면 언제든지 psql 연결 명령에 데이터베이스 이름을 지정할 수 있습니다.
ALTER DATABASE "tortoise-demo" OWNER TO "testuser";
이렇게 하면 연결할 때마다 tortoise-demo 데이터베이스를 직접 지정하므로 구성을 변경할 필요가 없습니다.
1.CREATEDB 권한 부여: testuser 역할에 데이터베이스를 생성하는 데 필요한 권한이 있는지 확인하세요.
2.데이터베이스 생성: testuser로 로그인하고 tortoise-demo 데이터베이스를 생성합니다.
3.데이터베이스로 전환: tortoise-demo로 전환하려면 c 명령을 사용하세요.
4.데이터베이스 연결 자동화: 기본적으로 항상 tortoise-demo에 연결하도록 PGDATABASE 환경 변수를 설정하거나 psql 명령에 데이터베이스 이름을 명시적으로 지정합니다.
이 단계를 수행하면 새 데이터베이스를 생성해야 할 때마다 슈퍼유저 권한이 필요하지 않고 슈퍼유저가 아닌 사용자로서 PostgreSQL에서 자체 데이터베이스를 생성하고 관리할 수 있습니다. 특정 데이터베이스에 자동으로 연결하는 기능은 특히 특정 프로젝트나 애플리케이션을 사용하는 개발자의 작업 흐름을 더욱 효율적으로 만들어줍니다.
읽어주셔서 감사합니다...
즐거운 코딩하세요!
위 내용은 슈퍼유저 액세스 없이 PostgreSQL에서 데이터베이스를 생성하고 항상 연결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!