org.h2.engine

## Class User

- java.lang.Object
- - org.h2.engine.DbObject
  - - org.h2.engine.RightOwner
    - - org.h2.engine.User

- All Implemented Interfaces:
    org.h2.util.HasSQL

      public final class User
      extends RightOwner

  Represents a user object.

- - ### Field Summary

    - ### Fields inherited from class org.h2.engine.DbObject

      `AGGREGATE, comment, COMMENT, CONSTANT, CONSTRAINT, database, DOMAIN, FUNCTION_ALIAS, INDEX, RIGHT, ROLE, SCHEMA, SEQUENCE, SETTING, SYNONYM, TABLE_OR_VIEW, trace, TRIGGER, USER`

    - ### Fields inherited from interface org.h2.util.HasSQL

      `ADD_PLAN_INFORMATION, DEFAULT_SQL_FLAGS, NO_CASTS, QUOTE_ONLY_WHEN_REQUIRED, REPLACE_LOBS_FOR_TRACE, TRACE_SQL_FLAGS`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `User(Database database, int id, java.lang.String userName, boolean systemUser)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `checkAdmin()` Checks if this user has admin rights.
    `void` | `checkSchemaAdmin()` Checks if this user has schema admin rights for every schema.
    `void` | `checkSchemaOwner(org.h2.schema.Schema schema)` Checks if this user has schema owner rights for the specified schema.
    `void` | `checkTableRight(org.h2.table.Table table, int rightMask)` Checks that this user has the given rights for the specified table.
    `java.util.ArrayList<DbObject>` | `getChildren()` Get the list of dependent children (for tables, this includes indexes and so on).
    `java.lang.String` | `getCreateSQL()` Construct the CREATE ...
    `java.lang.String` | `getCreateSQL(boolean password)` Get the CREATE SQL statement for this object.
    `int` | `getType()` Get the object type.
    `boolean` | `hasTableRight(org.h2.table.Table table, int rightMask)` See if this user has the given rights for this database object.
    `boolean` | `isAdmin()`
    `void` | `removeChildrenAndResources(SessionLocal session)` Delete all dependent children objects and resources of this object.
    `void` | `setAdmin(boolean admin)`
    `void` | `setSaltAndHash(byte[] salt, byte[] hash)` Set the salt and hash of the password for this user.
    `void` | `setUserPasswordHash(byte[] userPasswordHash)` Set the user name password hash.

    - ### Methods inherited from class org.h2.engine.RightOwner

      `checkOwnsNoSchemas, getRightForObject, getRightForRole, grantRight, grantRole, isRoleGranted, rename, revokeTemporaryRightsOnRoles`

    - ### Methods inherited from class org.h2.engine.DbObject

      `checkRename, getComment, getCreateSQLForCopy, getCreateSQLForMeta, getDatabase, getDropSQL, getId, getModificationId, getName, getSQL, getSQL, invalidate, isTemporary, isValid, setComment, setModified, setObjectName, setTemporary, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface org.h2.util.HasSQL

      `getTraceSQL`

- - ### Constructor Detail

    - #### User

          public User(Database database,
                      int id,
                      java.lang.String userName,
                      boolean systemUser)

  - ### Method Detail

    - #### setAdmin

          public void setAdmin(boolean admin)

    - #### isAdmin

          public boolean isAdmin()

    - #### setSaltAndHash

          public void setSaltAndHash(byte[] salt,
                                     byte[] hash)

      Set the salt and hash of the password for this user.
      Parameters:
        `salt` - the salt
        `hash` - the password hash

    - #### setUserPasswordHash

          public void setUserPasswordHash(byte[] userPasswordHash)

      Set the user name password hash. A random salt is generated as well. The parameter is filled with zeros after use.
      Parameters:
        `userPasswordHash` - the user name password hash

    - #### getCreateSQL

          public java.lang.String getCreateSQL()

      Description copied from class: `DbObject`
      Construct the CREATE ... SQL statement for this object.
      Specified by:
        `getCreateSQL` in class `DbObject`
      Returns:
        the SQL statement

    - #### getCreateSQL

          public java.lang.String getCreateSQL(boolean password)

      Get the CREATE SQL statement for this object.
      Parameters:
        `password` - true if the password (actually the salt and hash) should be returned
      Returns:
        the SQL statement

    - #### checkAdmin

          public void checkAdmin()

      Checks if this user has admin rights. An exception is thrown if user doesn't have them.
      Throws:
        `org.h2.message.DbException` - if this user is not an admin

    - #### checkSchemaAdmin

          public void checkSchemaAdmin()

      Checks if this user has schema admin rights for every schema. An exception is thrown if user doesn't have them.
      Throws:
        `org.h2.message.DbException` - if this user is not a schema admin

    - #### checkSchemaOwner

          public void checkSchemaOwner(org.h2.schema.Schema schema)

      Checks if this user has schema owner rights for the specified schema. An exception is thrown if user doesn't have them.
      Parameters:
        `schema` - the schema
      Throws:
        `org.h2.message.DbException` - if this user is not a schema owner

    - #### checkTableRight

          public void checkTableRight(org.h2.table.Table table,
                                      int rightMask)

      Checks that this user has the given rights for the specified table.
      Parameters:
        `table` - the table
        `rightMask` - the rights required
      Throws:
        `org.h2.message.DbException` - if this user does not have the required rights

    - #### hasTableRight

          public boolean hasTableRight(org.h2.table.Table table,
                                       int rightMask)

      See if this user has the given rights for this database object.
      Parameters:
        `table` - the database object, or null for schema-only check
        `rightMask` - the rights required
      Returns:
        true if the user has the rights

    - #### getType

          public int getType()

      Description copied from class: `DbObject`
      Get the object type.
      Specified by:
        `getType` in class `DbObject`
      Returns:
        the object type

    - #### getChildren

          public java.util.ArrayList<DbObject> getChildren()

      Description copied from class: `DbObject`
      Get the list of dependent children (for tables, this includes indexes and so on).
      Overrides:
        `getChildren` in class `DbObject`
      Returns:
        the list of children, or `null`

    - #### removeChildrenAndResources

          public void removeChildrenAndResources(SessionLocal session)

      Description copied from class: `DbObject`
      Delete all dependent children objects and resources of this object.
      Specified by:
        `removeChildrenAndResources` in class `DbObject`
      Parameters:
        `session` - the session