sql >> Database teknologi >  >> RDS >> MariaDB

MariaDB CURRENT_ROLE() Forklaret

I MariaDB, CURRENT_ROLE() er en indbygget funktion, der returnerer det aktuelle rollenavn. Den aktuelle rolle bestemmer dine adgangsrettigheder.

Outputtet af SELECT CURRENT_ROLE svarer til indholdet af information_schema.ENABLED_ROLES tabel.

Syntaks

Funktionen kan kaldes med eller uden parentes:

CURRENT_ROLE
CURRENT_ROLE()

Ingen argumenter er påkrævet eller accepteret.

Eksempel

Her er et eksempel til demonstration:

SELECT CURRENT_ROLE();

Resultat:

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

I mit tilfælde er der ingen aktuel rolle og så NULL er returneret.

Lad os tilføje en aktuel rolle:

SET ROLE analyst;

Og kør det igen:

SELECT CURRENT_ROLE();

Resultat:

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

Nu er den rolle, vi tilføjede, den nuværende rolle.

Dette eksempel forudsætter, at rollen tidligere er blevet oprettet.

Uden parenteser

Som nævnt er CURRENT_ROLE() funktion kan kaldes med eller uden parentes.

Her er et eksempel uden parentes:

SELECT CURRENT_ROLE;

Resultat:

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

Ingen argumenter accepteres

Sender eventuelle argumenter til CURRENT_ROLE() resulterer i en fejl:

SELECT CURRENT_ROLE(1);

Resultat:

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

  1. Hvordan fjerner man alle ikke-alfanumeriske tegn fra en streng i MySQL?

  2. En PostgreSQL-forespørgsel med 'ANY' virker ikke

  3. Sådan medtager du resultater, der stemmer overens med sidstepladsen, når du bruger TOP-klausulen i SQL Server

  4. MayBeSQL kommer til Microsoft Access!