非superuser管理会话
在gp中取消或者中断某个用户的超长时间或者SQL存在问题的会话,如果无法拥有超级用户将无法执行该类操作。 首先我们创建两个用户t1、t2,并且使用t1登录到数据库。 [gpadmin@wx60 ~]$ psql gtlionspsql (8.2.15)Type help for help. gtlions=# select version
在gp中取消或者中断某个用户的超长时间或者SQL存在问题的会话,如果无法拥有超级用户将无法执行该类操作。首先我们创建两个用户t1、t2,并且使用t1登录到数据库。
[gpadmin@wx60 ~]$ psql gtlions psql (8.2.15) Type "help" for help. gtlions=# select version(); version ------------------------------------------------------------------------------------------------------------------------------------------------------ PostgreSQL 8.2.15 (Greenplum Database 4.2.7.2 build 1) on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.4.2 compiled on Feb 25 2014 18:05:04 (1 row) gtlions=# \du List of roles Role name | Attributes | Member of -----------+-----------------------------------+----------- gpadmin | Superuser, Create role, Create DB | gtlions=# \dn List of schemas Name | Owner --------------------+--------- gp_toolkit | gpadmin information_schema | gpadmin pg_aoseg | gpadmin pg_bitmapindex | gpadmin pg_catalog | gpadmin pg_toast | gpadmin public | gpadmin (7 rows) gtlions=# create user t1 ; NOTICE: resource queue required -- using default resource queue "pg_default" CREATE ROLE gtlions=# create user t2; NOTICE: resource queue required -- using default resource queue "pg_default" CREATE ROLE gtlions=# \c gtlions t1 You are now connected to database "gtlions" as user "t1". 接下来我们使用用户t2登录到数据库,检查当前会话并尝试取消或者中断用户t1的会话。
[gpadmin@wx60 ~]$ psql -U t2 gtlions psql (8.2.15) Type "help" for help. gtlions=> select * from pg_stat_activity ; datid | datname | procpid | sess_id | usesysid | usename | current_query | waiting | query_start | backend_start | client_addr | client_port | application_name | xact_start -------+---------+---------+---------+----------+---------+----------------------------------+---------+-------------------------------+------------------------------- +-------------+-------------+------------------+------------------------------- 16992 | gtlions | 3395 | 13 | 25881 | t2 | select * from pg_stat_activity ; | f | 2014-10-11 09:25:56.197394+08 | 2014-10-11 09:25:43.293684+08 | | -1 | psql | 2014-10-11 09:25:56.197394+08 16992 | gtlions | 3384 | 12 | 25880 | t1 | <insufficient privilege> | | | | | | psql | (2 rows) gtlions=> select pg_cancel_backend(3384); ERROR: must be superuser to signal other server processes gtlions=> 会发现非超级用户无法执行取消或者中断其他用户的会话操作。 解决办法是自定义一个函数,并授权给t2用户执行权限,这样就可以实现上述操作了。
create or replace function session_mgr(procpid integer, opertype character) returns boolean as $BODY$ declare ret boolean; begin if opertype = 'c' then ret := (select pg_catalog.pg_cancel_backend(procpid)); elsif opertype = 'k' then ret := (select pg_catalog.pg_terminate_backend(procpid)); end if; return ret; end; $BODY$ LANGUAGE plpgsql security definer; gtlions=# grant execute on function session_mgr(integer, character) to t2; GRANT gtlions=# \c gtlions t1 You are now connected to database "gtlions" as user "t1". gtlions=> 接着使用用户t2进行相关操作。
[gpadmin@wx60 ~]$ psql -U t2 gtlions psql (8.2.15) Type "help" for help. gtlions=> select * from pg_stat_activity ; datid | datname | procpid | sess_id | usesysid | usename | current_query | waiting | query_start | backend_start | client_addr | client_port | application_name | xact_start -------+---------+---------+---------+----------+---------+----------------------------------+---------+-------------------------------+------------------------------- +-------------+-------------+----------------------------+------------------------------- 16992 | gtlions | 4034 | 19 | 25881 | t2 | select * from pg_stat_activity ; | f | 2014-10-11 09:48:53.767859+08 | 2014-10-11 09:48:51.285594+08 | | -1 | psql | 2014-10-11 09:48:53.767859+08 16992 | gtlions | 3678 | 15 | 10 | gpadmin | <insufficient privilege> | | | | | | pgAdmin III - ????????? | 16992 | gtlions | 3704 | 16 | 10 | gpadmin | <insufficient privilege> | | | | | | pgAdmin III - ???????????? | 16992 | gtlions | 4023 | 18 | 25880 | t1 | <insufficient privilege> | | | | | | psql | (4 rows) gtlions=> select session_mgr(4023,'c'); session_mgr ------------- t (1 row) gtlions=> select * from pg_stat_activity ; datid | datname | procpid | sess_id | usesysid | usename | current_query | waiting | query_start | backend_start | client_addr | client_port | application_name | xact_start -------+---------+---------+---------+----------+---------+----------------------------------+---------+-------------------------------+------------------------------- +-------------+-------------+----------------------------+------------------------------- 16992 | gtlions | 4034 | 19 | 25881 | t2 | select * from pg_stat_activity ; | f | 2014-10-11 09:52:03.279186+08 | 2014-10-11 09:48:51.285594+08 | | -1 | psql | 2014-10-11 09:52:03.279186+08 16992 | gtlions | 4065 | 20 | 10 | gpadmin | <insufficient privilege> | | | | | | pgAdmin III - ???????????? | 16992 | gtlions | 3678 | 15 | 10 | gpadmin | <insufficient privilege> | | | | | | pgAdmin III - ????????? | 16992 | gtlions | 3704 | 16 | 10 | gpadmin | <insufficient privilege> | | | | | | pgAdmin III - ???????????? | 16992 | gtlions | 4023 | 18 | 25880 | t1 | <insufficient privilege> | | | | | | psql | (5 rows) gtlions=> select session_mgr(4023,'k'); session_mgr ------------- t (1 row) gtlions=> select * from pg_stat_activity ; datid | datname | procpid | sess_id | usesysid | usename | current_query | waiting | query_start | backend_start | client_addr | client_port | application_name | xact_start -------+---------+---------+---------+----------+---------+----------------------------------+---------+-------------------------------+------------------------------- +-------------+-------------+----------------------------+------------------------------- 16992 | gtlions | 4034 | 19 | 25881 | t2 | select * from pg_stat_activity ; | f | 2014-10-11 09:52:28.473137+08 | 2014-10-11 09:48:51.285594+08 | | -1 | psql | 2014-10-11 09:52:28.473137+08 16992 | gtlions | 4065 | 20 | 10 | gpadmin | <insufficient privilege> | | | | | | pgAdmin III - ???????????? | 16992 | gtlions | 3678 | 15 | 10 | gpadmin | <insufficient privilege> | | | | | | pgAdmin III - ????????? | 16992 | gtlions | 3704 | 16 | 10 | gpadmin | <insufficient privilege> | | | | | | pgAdmin III - ???????????? | 16992 | gtlions | 4189 | 21 | 25880 | t1 | <insufficient privilege> | | | | | | psql | (5 rows) gtlions=> 最后检查下t1当前进程。
gtlions=> select version(); FATAL: terminating connection due to administrator command server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request. The connection to the server was lost. Attempting reset: Succeeded. -EOF-

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











Mit der rasanten Entwicklung der sozialen Medien hat sich Xiaohongshu zu einer der beliebtesten sozialen Plattformen entwickelt. Benutzer können ein Xiaohongshu-Konto erstellen, um ihre persönliche Identität zu zeigen und mit anderen Benutzern zu kommunizieren und zu interagieren. Wenn Sie die Xiaohongshu-Nummer eines Benutzers finden müssen, können Sie diese einfachen Schritte befolgen. 1. Wie verwende ich das Xiaohongshu-Konto, um Benutzer zu finden? 1. Öffnen Sie die Xiaohongshu-App, klicken Sie auf die Schaltfläche „Entdecken“ in der unteren rechten Ecke und wählen Sie dann die Option „Notizen“. 2. Suchen Sie in der Notizenliste nach der Notiz, die von dem Benutzer gepostet wurde, den Sie suchen möchten. Klicken Sie hier, um die Seite mit den Notizdetails aufzurufen. 3. Klicken Sie auf der Seite mit den Notizdetails auf die Schaltfläche „Folgen“ unter dem Avatar des Benutzers, um zur persönlichen Homepage des Benutzers zu gelangen. 4. Klicken Sie in der oberen rechten Ecke der persönlichen Homepage des Benutzers auf die Schaltfläche mit den drei Punkten und wählen Sie „Persönliche Informationen“.

Wenn Benutzer Bestellungen über Meituan aufgeben, können sie nicht gewünschte Bestellungen stornieren. Viele Benutzer wissen nicht, wie sie Meituan-Bestellungen stornieren können. Benutzer können auf die Seite „Mein“ klicken, um die Bestellung einzugeben, die sie erhalten möchten storniert werden und klicken Sie auf „Abbrechen“. So stornieren Sie eine Bestellung bei Meituan 1. Klicken Sie zunächst auf Meituan Meine Seite, um die Bestellung einzugeben, die Sie erhalten möchten. 2. Klicken Sie dann auf , um die Bestellung einzugeben, die storniert werden soll. 3. Klicken Sie auf Bestellung stornieren. 4. Klicken Sie auf OK, um die Bestellung zu stornieren. 5. Wählen Sie abschließend den Kündigungsgrund entsprechend Ihrer persönlichen Situation aus und klicken Sie auf Absenden.

In Ubuntu-Systemen ist der Root-Benutzer normalerweise deaktiviert. Um den Root-Benutzer zu aktivieren, können Sie mit dem Befehl passwd ein Passwort festlegen und sich dann mit dem Befehl su- als Root anmelden. Der Root-Benutzer ist ein Benutzer mit uneingeschränkten Systemadministratorrechten. Er verfügt über Berechtigungen zum Zugriff auf und zum Ändern von Dateien, zur Benutzerverwaltung, zum Installieren und Entfernen von Software sowie zum Ändern der Systemkonfiguration. Es gibt offensichtliche Unterschiede zwischen dem Root-Benutzer und normalen Benutzern. Der Root-Benutzer verfügt über die höchste Autorität und umfassendere Kontrollrechte im System. Der Root-Benutzer kann wichtige Systembefehle ausführen und Systemdateien bearbeiten, was normale Benutzer nicht können. In dieser Anleitung werde ich den Ubuntu-Root-Benutzer untersuchen, wie man sich als Root anmeldet und wie er sich von einem normalen Benutzer unterscheidet. Beachten

Wenn viele Benutzer Mango TV, eine Videosoftware, kennenlernen, entscheiden sie sich für eine Mitgliedschaft, um mehr Film- und Fernsehressourcen und umfassendere Dienste zu genießen. Bei der Nutzung der Mango TV-Mitgliedschaftsdienste entscheiden sich einige Benutzer dafür, die automatische Verlängerungsfunktion zu aktivieren, um von den Rabatten zu profitieren und sicherzustellen, dass ihnen keine spannenden Inhalte entgehen. Wenn Benutzer jedoch keine Mitgliedschaftsdienste mehr benötigen oder die Zahlungsmethode ändern möchten, ist die Kündigung der automatischen Verlängerungsfunktion eine sehr wichtige Sache, um die Sicherheit ihres Eigentums zu schützen. Wie können Benutzer den automatischen Verlängerungsdienst kündigen? Kommen Sie und folgen Sie diesem Artikel, um mehr zu erfahren! Wie kann ich die automatische Verlängerung der Mitgliedschaft bei Mango TV kündigen? 1. Geben Sie zunächst „Mein“ in der mobilen Mango TV-App ein und wählen Sie dann „VIP-Mitgliedschaft“ aus. 2. Suchen Sie dann nach [Tube

1. Das Ohrsymbol ist der Sprachempfängermodus. Zuerst öffnen wir WeChat. 2. Klicken Sie unten rechts auf mich. 3. Klicken Sie auf Einstellungen. 4. Suchen Sie den Chat und klicken Sie, um ihn zu betreten. 5. Deaktivieren Sie die Option „Ohrhörer zum Abspielen der Stimme verwenden“.

Sie können die Funktion zur automatischen Verlängerung der Verwaltung in der My Gold VIP-Mitgliederoberfläche öffnen, um zu kündigen. Tutorial Anwendbares Modell: Huawei P50 System: HarmonyOS2.0 Version: iQiyi 12.1.0 Analyse 1 Öffnen Sie die iQiyi-App auf Ihrem Telefon und rufen Sie dann die Seite „Mein“ auf. 2 Klicken Sie dann oben auf meiner Seite auf „Gold VIP-Mitglied“ und dann auf die Option „Automatische Verlängerung verwalten“. 3. Klicken Sie im Popup-Fenster auf Automatische Verlängerung abbrechen. Wenn Sie kein Interesse haben, fahren Sie mit dem Abbrechen fort. 4Bestätigen Sie abschließend die Deaktivierung der automatischen Verlängerung und klicken Sie auf „Ich verstehe, lehne es einfach grausam ab“. Ergänzung: So deaktivieren Sie die automatische Verlängerungsfunktion auf dem iQiyi iPhone 1. Öffnen Sie die Einstellungen auf dem Telefon und klicken Sie dann oben in der Einstellungsoberfläche auf [AppleID]. 2Klicken Sie zur Auswahl auf der AppleID-Oberfläche auf [Abonnieren].

1. Klicken Sie in den Telefoneinstellungen auf die Option [iTunesStore und AppStore]. 2. Klicken Sie auf [AppleID anzeigen] und geben Sie dann das Anmeldekennwort ein. 3. Rufen Sie die Benutzeroberfläche [Kontoeinstellungen] auf und klicken Sie auf [Zahlungsinformationen]. 4. Markieren Sie die Zahlungsmethode als [Keine] und klicken Sie auf [Fertig stellen]. Kehren Sie nach Abschluss zur WeChat-Oberfläche zurück. Zu diesem Zeitpunkt erhalten Sie die Meldung [Benachrichtigung über erfolgreiche Stornierung] und WeChat zieht die Gebühren nicht mehr automatisch ab.

Alipay ist eine sehr praktische Life-Service-Plattform. Sie bietet Benutzern Funktionen wie Lebensversicherung, Reisen, Krankenversicherung usw. und bringt Komfort in das Leben aller. Auf der Alipay-Plattform gibt es viele Funktionen, die nur darauf warten, von jedem freigeschaltet zu werden. Wie können Sie also die Face-Swipe-Zahlung bei Alipay stornieren? Detaillierte Anleitung zum Stornieren der Face-Swipe-Zahlung bei Alipay: 1. Öffnen Sie zuerst Alipay. 2. Klicken Sie unten rechts auf „Mein“. 3. Klicken Sie oben rechts auf Einstellungen. 4. Klicken Sie auf Zahlungseinstellungen. 5. Klicken Sie auf biometrische Zahlung. 6. Suchen Sie das Mobiltelefon, um das Gesicht zu scannen, um zu bezahlen. 7. Deaktivieren Sie es. Softwarefunktionen 1. Unterstützen Sie verschiedene Szenenbeziehungen, Gruppenchat usw Gruppenzahlungen sind bequemer; 2. Einrichtung von Familienkonten für Kinder und Eltern; 3. Kostenlose Fernüberweisungen und Kreditkartenrückzahlungen
