Heim Datenbank MySQL-Tutorial 非superuser管理会话

非superuser管理会话

Jun 07, 2016 pm 04:04 PM
中断 会话 取消 用户 管理

在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的会话。
Nach dem Login kopieren
[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用户执行权限,这样就可以实现上述操作了。
Nach dem Login kopieren
create or replace function session_mgr(procpid integer, opertype character)
	returns boolean
	as
$BODY$
declare
	ret boolean;
begin
	if opertype = &#39;c&#39; then
		ret := (select pg_catalog.pg_cancel_backend(procpid));
	elsif opertype = &#39;k&#39; 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进行相关操作。
Nach dem Login kopieren
[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,&#39;c&#39;);
 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,&#39;k&#39;);
 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当前进程。
Nach dem Login kopieren
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-
Nach dem Login kopieren
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1662
14
PHP-Tutorial
1261
29
C#-Tutorial
1234
24
Wie verwende ich das Xiaohongshu-Konto, um Benutzer zu finden? Kann ich meine Handynummer finden? Wie verwende ich das Xiaohongshu-Konto, um Benutzer zu finden? Kann ich meine Handynummer finden? Mar 22, 2024 am 08:40 AM

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“.

So stornieren Sie eine Bestellung bei Meituan So stornieren Sie eine Bestellung bei Meituan Mar 07, 2024 pm 05:58 PM

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.

Melden Sie sich als Superuser bei Ubuntu an Melden Sie sich als Superuser bei Ubuntu an Mar 20, 2024 am 10:55 AM

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

Wo kann ich die automatische Verlängerung von Mango TV kündigen? Wo kann ich die automatische Verlängerung von Mango TV kündigen? Feb 28, 2024 pm 10:16 PM

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

Detaillierte Schritte zum Deaktivieren des Ohrsymbols auf WeChat Detaillierte Schritte zum Deaktivieren des Ohrsymbols auf WeChat Mar 25, 2024 pm 05:01 PM

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“.

So kündigen Sie die automatische Verlängerung bei iQiyi. So kündigen Sie die automatische Verlängerung bei iQiyi So kündigen Sie die automatische Verlängerung bei iQiyi. So kündigen Sie die automatische Verlängerung bei iQiyi Feb 22, 2024 pm 04:46 PM

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].

Vorgehensweise zum Stornieren der Abonnementzahlung bei WeChat Vorgehensweise zum Stornieren der Abonnementzahlung bei WeChat Mar 26, 2024 pm 08:21 PM

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.

Wie kann ich die Zahlung per Gesichtserkennung bei Alipay stornieren? Alipay-Tutorial zum Stornieren von Zahlungen per Gesichtserkennung Wie kann ich die Zahlung per Gesichtserkennung bei Alipay stornieren? Alipay-Tutorial zum Stornieren von Zahlungen per Gesichtserkennung Mar 16, 2024 pm 03:07 PM

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

See all articles