查询postgres11.11查询创建地理信息库的权限,并开通创建地理信息库的权限
时间: 2024-09-19 17:07:24 浏览: 30
PostgreSQL中使用dblink实现跨库查询的方法
5星 · 资源好评率100%
在PostgreSQL 11.11中,要查询用户是否具有创建地理信息数据库(通常是通过`geography`数据类型)的权限,以及如何授予这样的权限,你可以使用以下SQL命令:
1. **检查权限** (查看某用户的权限):
使用`\du+`命令可以列出所有用户及其权限,包括对特定类型数据库如geography的权限。例如,如果想知道用户`username`是否有权限:
```
\du+ username
```
如果结果列出了`geography`,则说明该用户有权限。
2. **检查权限(详细模式)**:
更详细的权限检查可以使用`pg_catalog.pg_user`系统表:
```sql
SELECT rolname, pg_has_table_privilege(rolname, 'public.geography') AS has_geography_perm
FROM pg_roles
WHERE rolname = 'username';
```
3. **授予权限**:
要给用户`username`授予权限,可以使用`GRANT`命令:
```sql
GRANT CREATE ON geography TO username;
```
这将允许`username`创建新的地理信息数据库。
4. **应用到角色上**:
如果你希望这个权限应用于角色而不是单个用户,可以用:
```sql
GRANT CREATE ON geometry_columns TO role_name;
```
5. **启用全局**:
如果你想永久地为新用户设置这个权限,可以在`postgresql.conf`文件中设置`search_path`,让`geography`成为默认搜索路径,然后重启PostgreSQL服务。
阅读全文