sql >> データベース >  >> RDS >> MariaDB

MariaDB SESSION_USER()の説明

    MariaDBでは、SESSION_USER() USER()の同義語です 働き。 MariaDBへの認証時に指定された現在のMariaDBユーザー名とホスト名を返します。

    構文

    構文は次のようになります:

    SESSION_USER()

    引数は必要ありません。

    デモンストレーションの例を次に示します。

    SELECT SESSION_USER();

    結果:

    +------------------+
    | SESSION_USER()   |
    +------------------+
    | [email protected] |
    +------------------+

    SESSION_USER() vs CURRENT_USER()

    CURRENT_USER()と呼ばれる別の関数もあります それは同じようなことをします。ただし、常にSESSION_USER()と同じ結果が返されるとは限りません。 。

    たとえば、anonymousを使用して接続する場合 :

    mariadb --user="anonymous"

    次に、SESSION_USER()を実行します およびCURRENT_USER()

    SELECT 
        SESSION_USER(),
        CURRENT_USER;

    結果:

    +---------------------+--------------+
    | SESSION_USER()      | CURRENT_USER |
    +---------------------+--------------+
    | [email protected] | @localhost   |
    +---------------------+--------------+

    ただし、(元のターミナルウィンドウで)前のセッションに戻ると、各関数は同じ結果を返します。

    SELECT 
        SESSION_USER(),
        CURRENT_USER;

    結果:

    +------------------+------------------+
    | SESSION_USER()   | CURRENT_USER     |
    +------------------+------------------+
    | [email protected] | [email protected] |
    +------------------+------------------+

    引数は受け入れられません

    SESSION_USER()に引数を渡す エラーが発生します:

    SELECT SESSION_USER(123);

    結果:

    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 '123)' at line 1

    SESSION_USER()を使用したステートメント 関数(またはUSER() およびSYSTEM_USER() )ステートメントレベルの複製には安全ではありません。


    1. オラクルでjsonを使用する

    2. sqliteで外部キーを使用する方法は?

    3. SQLServerでsysjobhistoryの日時と期間の列をフォーマットします

    4. MySQLWorkbenchの代替-ClusterControl構成管理