> 第21章。数据库角色列出了PostgreSQL的默认角色。但是我在那里没有找到用户< code>postgres,它是在PostgreSQL中默认创建的。< code>postgres是默认角色吗?是手册漏了还是我理解错了?
在PostgreSQL中,< code>postgres是一个特殊用户,还是一个像手工创建的普通用户?PostgreSQL服务器需要用户< code>postgres吗?移除它会给服务器带来一些麻烦还是其他什么?
psql中运行的以下两个命令提供了默认角色或用户名,它们都包含< code>postgres。它们为什么不同?
# select usename from pg_catalog.pg_user;
usename
----------
postgres
(1 row)
# select rolname from pg_catalog.pg_roles;
rolname
----------------------
postgres
pg_monitor
pg_read_all_settings
pg_read_all_stats
pg_stat_scan_tables
pg_signal_backend
(6 rows)
< code>postgres是安装后第一个可用的用户。是超级用户。但是,您可以定义自己的超级用户,这些用户将拥有与< code>postgres用户相同的权限。
用户是能够登录的角色。
没有登录权限的角色用于各种系统级别的使用,有时也用于通过继承来管理权限改造规则(例如,您可能拥有一个角色analyst
和一个用户hal
,该用户被授予analyst
角色的成员资格)
因此pg_user
只返回那些能够登录到数据库的角色。
>
后记
不是默认角色。
使用< code>initdb创建PostgreSQL数据库集群时,可以使用< code>-U选项指定安装超级用户的名称。如果忽略该选项,超级用户的名称将与您正在使用的操作系统用户名相同。
由于习惯上由操作系统用户帖子运行 initdb
PostgreSQL
,因此超级用户通常也被称为 postgres
,但这绝不是必需的。
postgres
只是一个普通的超级用户,就像任何其他用户一样。
您将很难删除它,因为它拥有所有的系统对象,并且您不能轻易地修改这些对象。建议你不要尝试。
pg_read_all_settings
和其他角色不会显示在pg_user中,
因为它们不是登录角色。
在Connection.php第647行中: SQLSTATE[42000]:语法错误或访问冲突: 1071指定的键太长;最大键长度为1000字节(SQL:更改表添加uni que()) 在Connection.php第449行: SQLSTATE[42000]:语法错误或访问冲突:1071指定的密钥太长;最大密钥长度为1000字节。 我怎样才能解决这个问题?? 当我想在CMD中迁移默认迁移时,会
https://stackoverflow.com/a/22487113/4416169在下面的答案中,我们可以看到详细的代码: https://stackoverflow.com/a/35652391/4416169在这里,我们可以看到如何选择模板: 选择模板专门化分为五个步骤: 以主模板声明为例 首先,我知道SFINAE将负责使用std::enable\u if排除结构 模板 我们现在知道,当
我正在开发一个开源应用程序,该应用程序将后绿色SQL作为其默认DBMS。现在,当我在我的系统上安装它时,它的配置是为了让PostgreSQL也随它一起安装。 我的问题是访问已安装的PostgreSQL数据库。安装期间创建的数据库名为< code>iviewdb。 我在许多论坛上读到默认超级用户是,但当我尝试通过命令提示符使用此用户名访问数据库时,它会提示我输入我没有的密码。 我想知道Postgre
我正在尝试实现一段代码,检查hashed_password和user_name是否匹配。下面的代码首先检查用户名是否有效,如果有效,代码将检查密码是否与用户名匹配。但是,这是一段代码不起作用。我可以从数据库输入正确的用户名和相应的正确密码,它会显示正确的消息。但是如果我从数据库输入正确的用户名,但密码不正确,它仍然会显示。感谢任何帮助!
问题内容: 然后,我想更改用户的默认架构(用户为) 我这样做:( 查询成功返回,但没有结果)。 当我尝试给出错误 虽然效果很好。 尝试为用户更改默认架构有什么问题? 问题答案: 我认为您需要重新登录。随着 你改变 运行时配置变量的会话默认值 同样来自 手册: 特定于角色的变量设置仅在登录时生效; 但是不要将更改应用于当前会话。如果要立即更改,请使用: 它将在会话级别更改路径
我使用以下命令创建了docker postgis容器: 这为/var/lib/docker/volumes/[some\u very\u long\u id]/\u data中的数据创建了一个卷 现在我需要将此卷移动到其他地方以方便我的外包承包商的备份......并且不知道如何做到这一点。我有点迷路了,因为似乎有不同的替代方案,例如数据卷和fs挂载。 那么今天正确的做法是什么?如何将我当前的数据目