우분투에서 일하고 있습니다. 다음은 내 명령 중 하나입니다.
$ psql -U kuser -d postgres
그런 다음 데이터베이스에 연결됩니다. 하지만 내가 시도 할 때 postgres 터미널에서
postgres=> CREATE DATABASE kdb;
ERROR: permission denied to create database
우분투에서 비슷한 명령을 시도하면 다음을 제공합니다.
$ sudo -u kuser createdb kdb
sudo: unknown user: kuser
sudo: unable to initialize policy plugin
이 DB를 어떻게 만듭니 까?. 나는 sudo 권리를 가지고 있으며 kuser는 내가 아닙니다.
답변
이름이 데이터베이스 사용자 인 것으로 kuser
보이지만 해당 이름을 가진 시스템 사용자가 없습니다. 그렇기 때문에 postgres 프롬프트가 표시되지만 sudo는 실패합니다.
계정에 createdb
권한 이 없으므로 해당 사용자는 데이터베이스를 만들 수 없습니다.
postgres
계정 (Ubuntu의 기본 관리 계정)을 사용하여 해당 권한을 사용자에게 부여 할 수 있습니다 .
sudo -u postgres psql -c 'alter user kuser with createdb' postgres
또는 해당 관리 계정을 사용하여 데이터베이스를 만들고 계정이 데이터베이스를 소유하도록 지정하십시오 kuser
.
sudo -u postgres createdb -O kuser kdb
해당 사용자가 다른 데이터베이스를 작성하지 않을 경우 후자의 옵션을 사용하여 계정에 부여 된 권한을 제한하는 것이 좋습니다.