Cod*_*dit 5 postgresql maintenance linux
我不能使用删除数据库
dropdb
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
ERROR: must be owner of database
Run Code Online (Sandbox Code Playgroud)
但是psql \l我看到用户管理员(删除数据库的那个)
admin=CTc/postgres
Run Code Online (Sandbox Code Playgroud)
除了我想删除的数据库。
Linux 中的 PostgreSQL 9.x 有什么问题?
您在那里看到的psql \l仅意味着 Postgres 角色admin已被Postgres 角色授予了一些特权postgres- 这是默认的超级用户,可能是数据库的实际所有者。
如果超级用户选择发出
GRANTorREVOKE命令,则执行该命令就好像它是由受影响对象的所有者发出的一样。特别是,通过这样的命令授予的特权似乎是由对象所有者授予的。
C -- CREATE
c -- CONNECT
T -- TEMPORARY
Run Code Online (Sandbox Code Playgroud)
CONNECT和TEMPORARY在数据库上也是 的默认默认权限PUBLIC,但我们在这里看到的已被明确授予。
没有授予删除数据库的权限,它不能。只有数据库的所有者才能删除它。(或超级用户。)因此错误消息:
错误:必须是数据库的所有者
通常,每个 shell 用户都使用同名的 Postgres 角色连接。因此,鉴于您拥有必要的sudo权利,应该这样做:
sudo -u postgres dropdb my_database_name_here
Run Code Online (Sandbox Code Playgroud)
或者postgres 像这里演示的那样切换到 shell 用户。
但您可能必须先断开其他用户的连接。看:
| 归档时间: |
|
| 查看次数: |
8962 次 |
| 最近记录: |