Package org.h2.engine

Class User

  • All Implemented Interfaces:
    HasSQL

    public final class User
    extends RightOwner
    Represents a user object.
    • Field Detail

      • systemUser

        private final boolean systemUser
      • salt

        private byte[] salt
      • passwordHash

        private byte[] passwordHash
      • admin

        private boolean admin
    • 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
      • getCreateSQLForCopy

        public java.lang.String getCreateSQLForCopy​(Table table,
                                                    java.lang.String quotedName)
        Description copied from class: DbObject
        Build a SQL statement to re-create the object, or to create a copy of the object with a different name or referencing a different table
        Specified by:
        getCreateSQLForCopy in class DbObject
        Parameters:
        table - the new table
        quotedName - the quoted name
        Returns:
        the SQL statement
      • 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
      • validateUserPasswordHash

        boolean validateUserPasswordHash​(byte[] userPasswordHash)
        Check the password of this user.
        Parameters:
        userPasswordHash - the password data (the user password hash)
        Returns:
        true if the user password hash is correct
      • checkAdmin

        public void checkAdmin()
        Checks if this user has admin rights. An exception is thrown if user doesn't have them.
        Throws:
        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:
        DbException - if this user is not a schema admin
      • checkSchemaOwner

        public void checkSchemaOwner​(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:
        DbException - if this user is not a schema owner
      • hasSchemaRight

        private boolean hasSchemaRight​(Schema schema)
        See if this user has owner rights for the specified schema
        Parameters:
        schema - the schema
        Returns:
        true if the user has the rights
      • checkTableRight

        public void checkTableRight​(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:
        DbException - if this user does not have the required rights
      • hasTableRight

        public boolean hasTableRight​(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