>백엔드 개발 >파이썬 튜토리얼 >슈퍼유저 액세스 없이 PostgreSQL에서 데이터베이스를 생성하고 항상 연결하는 방법

슈퍼유저 액세스 없이 PostgreSQL에서 데이터베이스를 생성하고 항상 연결하는 방법

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-27 04:48:20705검색

How to Create a Database and Always Connect to It in PostgreSQL Without Needing Superuser Access

이 가이드에서는 슈퍼유저가 아닌 사용자로 PostgreSQL에서 데이터베이스를 생성하고, 필요한 권한을 할당하고, 다음 작업을 수행할 수 있는지 확인하는 단계를 안내합니다. 수퍼유저로 로그인할 필요 없이 항상 새로 생성된 데이터베이스에 연결하세요.

이 기능은 모든 작업에 대해 관리 권한이 필요 없이 PostgreSQL에서 자신의 데이터베이스를 관리하려는 개발자나 사용자에게 유용합니다.

우리가 달성할 것:

1.새 데이터베이스를 생성합니다(거북이-데모).
2.수퍼유저가 아닌 역할(테스트 사용자)에게 데이터베이스를 생성하고 액세스할 수 있는 권한을 부여합니다.
3.수퍼유저로 먼저 전환할 필요 없이 원활하게 데이터베이스로 전환(tortoise-demo)합니다.
4.테스트 사용자로 로그인할 때 항상 tortoise-demo에 자동으로 연결하도록 PostgreSQL을 구성합니다.

1단계: testuser에게 필요한 권한 부여

수퍼유저가 아닌 사용자로 데이터베이스를 생성하기 전에 자신의 역할(이 경우 testuser)이 데이터베이스를 생성할 수 있는 적절한 권한을 가지고 있는지 확인해야 합니다.

CREATEDB 권한 부여

기본적으로 새로 생성된 PostgreSQL 역할에는 데이터베이스를 생성할 수 있는 권한이 없습니다. 슈퍼유저(예: postgres)로 로그인한 경우 테스트유저 역할에 필요한 권한을 부여할 수 있습니다.

1.슈퍼유저로 로그인(예: postgres):

   psql -U postgres

2.테스트 사용자에게 CREATEDB 권한 부여:

테스트 사용자가 새 데이터베이스를 생성할 수 있도록 다음 SQL 쿼리를 실행하세요.

   GRANT CREATEDB TO "testuser";

이렇게 하면 테스트 사용자가 슈퍼유저 권한 없이도 데이터베이스를 생성할 수 있습니다.

3.수퍼유저 세션 종료:

   \q

2단계: testuser로 로그인하고 데이터베이스 생성

이제 testuser 역할에 CREATEDB 권한이 있으므로 testuser로 로그인하여 새 데이터베이스를 생성할 수 있습니다.

테스트 사용자로 로그인:

testuser 역할로 로그인하려면 다음 명령을 실행하세요.

psql -U "testuser" -d postgres -W
  • -U "testuser" 옵션은 사용자를 지정합니다.
  • -d postgres 옵션은 postgres 데이터베이스(기본 관리 데이터베이스)에 연결합니다.
  • -W 옵션은 testuser에 대해 설정한 비밀번호(예: 1234567890)를 묻는 메시지를 표시합니다.

거북이 데모 데이터베이스를 생성합니다:

로그인한 후 새 데이터베이스 tortoise-demo를 만듭니다.

CREATE DATABASE "tortoise-demo";

이 명령은 tortoise-demo라는 새 데이터베이스를 생성합니다.

소유권 설정(선택 사항):

testuser가 데이터베이스에 대한 모든 권한을 갖도록 하려면 데이터베이스 소유권을 testuser에게 할당할 수 있습니다.

   psql -U postgres

이 단계는 선택 사항이지만 testuser 역할이 tortoise-demo 데이터베이스에 대한 전체 관리 제어 권한을 갖도록 보장합니다.

3단계: tortoise-demo 데이터베이스로 전환

데이터베이스를 생성한 후 새로 생성된 데이터베이스로 전환(거북이 데모)하여 작업을 시작할 수 있습니다.

Tortoise-demo에 연결하려면 다음을 실행하세요.

   GRANT CREATEDB TO "testuser";

c 명령은 현재 세션을 tortoise-demo 데이터베이스로 전환합니다. 이제부터 SQL 쿼리를 실행하고 데이터베이스를 관리할 수 있습니다.

4단계: 매번 전환할 필요 없이 tortoise-demo 연결 자동화

이제 tortoise-demo 데이터베이스를 성공적으로 생성하고 전환했으므로 다음 단계는 이 프로세스를 자동화하는 것입니다. 특히, 우리는 folasayoolayemi로 로그인할 때마다 명시적으로 전환할 필요 없이 자동으로 tortoise-demo 데이터베이스에 연결되도록 PostgreSQL을 구성하려고 합니다.

옵션 1: PGDATABASE 환경 변수 설정

항상 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에 연결됩니다.

옵션 2: 연결 명령에 항상 데이터베이스 지정

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.