PostgreSQL - データベースユーザ 'postgres' として bash スクリプトからクエリを実行する。
2023-10-04 05:16:22
質問
PostgreSQL データベースに、3 つのカラムを持つテーブルがあります。
c_uid
,
c_defaults
と
c_settings
.
c_uid
は単にユーザ名を格納し
c_defaults
はそのユーザーに関する多くのデータを含む長いテキストです。
の値を選択するステートメントをbashスクリプトから実行しなければなりません。
c_defaults
カラムの値を
c_uid
の値に基づいて、データベースユーザ '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'"
関連
-
[解決済み] psql: FATAL: データベース "<user>" が存在しない
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] PostgreSQL コマンドラインユーティリティ: psql を終了する方法
-
[解決済み] Bashシェルスクリプトの入力引数の存在確認
-
[解決済み] PostgreSQLのユーザーパスワードを変更する方法を教えてください。
-
[解決済み] Selectステートメントで特定のフィールドの重複を検索する
-
[解決済み】Bashスクリプトでクリップボードにパイプを接続する
-
[解決済み】Docker Postgresのスクリプトでユーザー/データベースを作成する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
MHAの高可用性構成とフェイルオーバー
-
[解決済み] データベースのインデックス作成はどのように行われるのですか?[クローズド]
-
[解決済み] JOINとINNER JOINの違いについて
-
[解決済み] INNER JOIN ON vs WHERE句
-
[解決済み] INNER JOINよりもCROSS APPLYを使用すべきなのはどのような場合ですか?
-
[解決済み] 最初の行への結合方法
-
[解決済み] SQL Server の VARCHAR/NVARCHAR 文字列に改行を挿入する方法
-
[解決済み] mysqldumpで特定のテーブルをスキップする
-
[解決済み] SQL ServerでINSERT INTOとしてデータをエクスポートする
-
[解決済み] Selectステートメントで特定のフィールドの重複を検索する