为了从表中进行 Select ,我需要:
- 在数据库上连接
- 模式上的使用(隐式给予模式所有者)
- 表上的SELECT(隐式给予表所有者)
这正确吗?
为了从表中进行 Select ,我需要:
这正确吗?
PostgreSQL有3层对象(数据库、模式、对象,例如表),还向DB对象所有者提供隐式授权
这意味着我们需要
要查看这些特权:
\l+
查看数据库的特权\dn+
查看架构的特权\dp+
查看表的特权特权为seen here
我们还需要了解以下格式的acl条目:
grantee=privilege-abbreviation[*]/grantor
例如,在以下\dp+
acl示例中,postgres
角色已授予user
所有权限
user=arwdDxt/postgres
如果acl条目为空,则意味着对象具有默认所有者特权(所有特权)
如果给定对象的"grantee"列为空,则意味着特权被授予PUBLIC
个角色(存在的每个角色)
=UC/postgres
此外,当使用公共模式时也会令人困惑.您对架构具有创建权限,因此当使用同一用户创建表时,您将使用该用户 Select 数据,并且您立即拥有所有者权限.
此外.在执行上述任何操作之前,您必须连接到集群.这意味着使用具有LOGIN
权限的角色并使用有效密码和SSL进行连接.