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

MariaDB SYSTEM_USER()の説明

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

    構文

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

    SYSTEM_USER()

    引数は必要ありません。

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

    SELECT SYSTEM_USER();

    結果:

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

    SYSTEM_USER() vs CURRENT_USER()

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

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

    mariadb --user="anonymous"

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

    SELECT 
        SYSTEM_USER(),
        CURRENT_USER;

    結果:

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

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

    SELECT 
        SYSTEM_USER(),
        CURRENT_USER;

    結果:

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

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

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

    SELECT SYSTEM_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

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


    1. MySQLテーブルにインデックスを作成するためのベストプラクティス–ローリングインデックスビルド

    2. PostgreSQLはPL/pgSQLでトランザクションを開始/終了できません

    3. LOWER LIKE vs iLIKE

    4. AndroidとMSSQLSERVER2008の接続