MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

MariaDB CURRENT_ROLE() erklärt

In MariaDB, CURRENT_ROLE() ist eine integrierte Funktion, die den aktuellen Rollennamen zurückgibt. Die aktuelle Rolle bestimmt Ihre Zugriffsrechte.

Die Ausgabe von SELECT CURRENT_ROLE entspricht dem Inhalt von information_schema.ENABLED_ROLES Tabelle.

Syntax

Die Funktion kann mit oder ohne die Klammern aufgerufen werden:

CURRENT_ROLE
CURRENT_ROLE()

Es sind keine Argumente erforderlich oder akzeptiert.

Beispiel

Hier ist ein Beispiel zur Veranschaulichung:

SELECT CURRENT_ROLE();

Ergebnis:

+----------------+
| CURRENT_ROLE() |
+----------------+
| NULL           |
+----------------+

In meinem Fall gibt es keine aktuelle Rolle und daher NULL zurückgegeben wird.

Lassen Sie uns eine aktuelle Rolle hinzufügen:

SET ROLE analyst;

Und erneut ausführen:

SELECT CURRENT_ROLE();

Ergebnis:

+----------------+
| CURRENT_ROLE() |
+----------------+
| analyst        |
+----------------+

Jetzt ist die Rolle, die wir hinzugefügt haben, die aktuelle Rolle.

Dieses Beispiel geht davon aus, dass die Rolle zuvor erstellt wurde.

Ohne Klammern

Wie bereits erwähnt, die CURRENT_ROLE() Die Funktion kann mit oder ohne Klammern aufgerufen werden.

Hier ist ein Beispiel ohne Klammern:

SELECT CURRENT_ROLE;

Ergebnis:

+--------------+
| CURRENT_ROLE |
+--------------+
| analyst      |
+--------------+

Es werden keine Argumente akzeptiert

Übergeben aller Argumente an CURRENT_ROLE() führt zu einem Fehler:

SELECT CURRENT_ROLE(1);

Ergebnis:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '1)' at line 1