我目前正在学习 PostgreSQL 和 MySQL 之间的差异,因为我有一个新项目,而且我还打算将我现有的软件从 MySQL 迁移到 PostgreSQL。我实际上已经开始创建一个 HTML 表,比较两者之间的命令(用于用户/数据库/命令提示符等)。在阅读了这里的答案后,我注意到它role似乎被用作一个组。与MySQL我有两个用户,基本公共(DELETE,INSERT,SELECT和UPDATE权限),并与一对夫妇的额外权限的管理员用户。
所以基本上在 Windows 7 命令提示符下(仅限本地开发)...
GRANT或REVOKE获得用户权限时,角色与用户相比如何(如果有的话)?Cra*_*ger 55
甲的作用是一个实体,它可以用作用户和/或为一组。角色WITH LOGIN可以用作用户,即您可以使用它登录。任何角色都可以作为一个组运行,包括您也可以登录的角色。所以“用户”和“组”本质上是表示角色预期用途的术语,它们之间没有真正的区别。即使在 PostgreSQL 风格的 SQL 中,这两者也或多或少地用作同义词。例如,文档上CREATE USER说:
CREATE USER 现在是 CREATE ROLE 的别名。
授予所有...请参阅手册GRANT。您可能实际上想要授予对数据库中的表ALL TABLES IN SCHEMA public而不是所有表的权限。
授予一些权利......同样的事情,但不是例如GRANT ALL使用GRANT SELECT, INSERT。再看说明书。
角色是用户和/或组。您只能授予角色,因为角色就是全部。