加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

PostgreSQL – 从bash脚本查询为数据库用户’postgres’

发布时间:2020-12-13 16:35:14 所属栏目:百科 来源:网络整理
导读:我的PostgreSQL数据库中有一个表,它有3列–c_uid,c_defaults和c_settings。 c_uid只存储用户的名称,而c_defaults是一段很长的文本,其中包含该用户的大量数据。 我必须从bash脚本执行一个语句,该脚本根据c_uid值选择c_defaults列的值,这需要由数据库用
我的PostgreSQL数据库中有一个表,它有3列–c_uid,c_defaults和c_settings。 c_uid只存储用户的名称,而c_defaults是一段很长的文本,其中包含该用户的大量数据。

我必须从bash脚本执行一个语句,该脚本根据c_uid值选择c_defaults列的值,这需要由数据库用户’postgres’完成。

在CLI上,我可以执行以下操作:

[mymachine]# su postgres
bash-4.1$psql
postgres=#c database_name
You are now connected to database "database_name" as user "postgres".
database_name=#SELECT c_defaults  FROM user_info WHERE c_uid = 'testuser';

但是,我如何通过bash脚本实现这一目标?

目的是从该列获取信息,编辑它并将其写回该列 – 所有这些都通过bash脚本完成。

试试这个:
#!/bin/bash
psql -U postgres -d database_name -c "SELECT c_defaults  FROM user_info WHERE c_uid = 'testuser'"

或使用su:

#!/bin/bash
su -c "psql -d database_name -c "SELECT c_defaults  FROM user_info WHERE c_uid = 'testuser'"" postgres

还有sudo:

#!/bin/bash
sudo -u postgres -H -- psql -d database_name -c "SELECT c_defaults  FROM user_info WHERE c_uid = 'testuser'"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读