sql >> Databáze >  >> RDS >> MariaDB

MariaDB CURRENT_ROLE() Vysvětleno

V MariaDB, CURRENT_ROLE() je vestavěná funkce, která vrací název aktuální role. Aktuální role určuje vaše přístupová oprávnění.

Výstup SELECT CURRENT_ROLE je ekvivalentní obsahu information_schema.ENABLED_ROLES tabulka.

Syntaxe

Funkci lze volat se závorkami nebo bez nich:

CURRENT_ROLE
CURRENT_ROLE()

Nejsou vyžadovány ani přijímány žádné argumenty.

Příklad

Zde je příklad k demonstraci:

SELECT CURRENT_ROLE();

Výsledek:

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

V mém případě neexistuje žádná aktuální role, a proto NULL je vráceno.

Pojďme přidat aktuální roli:

SET ROLE analyst;

A spusťte to znovu:

SELECT CURRENT_ROLE();

Výsledek:

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

Nyní, role, kterou jsme přidali, je aktuální role.

Tento příklad předpokládá, že role byla dříve vytvořena.

Bez závorek

Jak již bylo zmíněno, CURRENT_ROLE() funkci lze volat se závorkami nebo bez nich.

Zde je příklad bez závorek:

SELECT CURRENT_ROLE;

Výsledek:

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

Nepřijímáme žádné argumenty

Předání jakýchkoli argumentů do CURRENT_ROLE() výsledkem je chyba:

SELECT CURRENT_ROLE(1);

Výsledek:

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. PostgreSQL DESCRIBE TABLE Ekvivalent

  2. Převést datum na jiné časové pásmo v SQL Server

  3. Operátor zřetězení řetězců v Oracle, Postgres a SQL Server

  4. 3 způsoby, jak odstranit duplicitní řádky na serveru SQL při ignorování primárního klíče