我正在学习Postgresql和
MySQL之间的差异,因为我有一个新项目,我还打算将我现有的软件从MysqL迁移到Postgresql.我实际上已经开始创建一个HTML表,其中包含两者之间的命令(用于用户/数据库/命令提示符等)的比较.在
reading an answer之后,我注意到这个角色似乎被用作一个群体.使用MysqL,我有两个用户,基本上是公共的(DELETE,INSERT,SELECT和UPDATE权限)和具有一些额外权限的管理员用户.
所以基本上在Windows 7命令提示符下(仅限本地开发)…
>角色是特定于Postgresql的用户,组或松散使用的术语吗?
>如何为数据库中的所有表仅授予特定用户特定权限?
>如何为数据库中的所有表授予特定用户的所有权限?
>在使用GRANT或REVOKE获取用户权限时,如何将角色与用户进行比较?
角色是可以充当用户和/或组的实体. WITH LOGIN角色可以用作用户,即您可以使用它登录.任何角色都可以作为一个组运行,包括您也可以登录的角色.因此,“用户”和“组”本质上是表示角色的预期用途的术语,它们之间没有真正的区别.即使在sql的Postgresql风格中,两者也或多或少地用作同义词.例如,
CREATE USER
上的文档说:
CREATE USER is now an alias for CREATE ROLE.
授予所有… see the manual for GRANT
.您可能实际上想要授予SCHEMA公共中所有表的权限,而不是数据库中的所有表.
授予一些权利……同样的事情,但不是GRANT ALL使用GRANT SELECT,INSERT例如.再次,请参阅手册.
角色是用户和/或组.您只能授予角色,因为角色就是所有角色.