sql >> Database >  >> RDS >> MariaDB

MariaDB CURRENT_ROLE() uitgelegd

In MariaDB, CURRENT_ROLE() is een ingebouwde functie die de huidige rolnaam retourneert. De huidige rol bepaalt uw toegangsrechten.

De uitvoer van SELECT CURRENT_ROLE is gelijk aan de inhoud van de information_schema.ENABLED_ROLES tafel.

Syntaxis

De functie kan worden aangeroepen met of zonder haakjes:

CURRENT_ROLE
CURRENT_ROLE()

Er zijn geen argumenten vereist of geaccepteerd.

Voorbeeld

Hier is een voorbeeld om te demonstreren:

SELECT CURRENT_ROLE();

Resultaat:

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

In mijn geval is er geen huidige rol en dus NULL wordt geretourneerd.

Laten we een huidige rol toevoegen:

SET ROLE analyst;

En voer het opnieuw uit:

SELECT CURRENT_ROLE();

Resultaat:

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

De rol die we hebben toegevoegd, is de huidige rol.

In dit voorbeeld wordt ervan uitgegaan dat de rol eerder is aangemaakt.

Zonder haakjes

Zoals gezegd, de CURRENT_ROLE() functie kan worden aangeroepen met of zonder haakjes.

Hier is een voorbeeld zonder haakjes:

SELECT CURRENT_ROLE;

Resultaat:

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

Er worden geen argumenten geaccepteerd

Argumenten doorgeven aan CURRENT_ROLE() resulteert in een fout:

SELECT CURRENT_ROLE(1);

Resultaat:

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. Wanneer kunnen we een identificatienummer gebruiken in plaats van de naam in PostgreSQL?

  2. Postgres trigger-gebaseerde invoegomleiding zonder RETURNING te verbreken

  3. MySQL (of PHP?) Groepsresultaten op veldgegevens

  4. SQLite JSON_VALID()