:doc:`Glue <../../glue>` / Client / create_database

***************
create_database
***************



.. py:method:: Glue.Client.create_database(**kwargs)

  

  Creates a new database in a Data Catalog.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateDatabase>`_  


  **Request Syntax**
  ::

    response = client.create_database(
        CatalogId='string',
        DatabaseInput={
            'Name': 'string',
            'Description': 'string',
            'LocationUri': 'string',
            'Parameters': {
                'string': 'string'
            },
            'CreateTableDefaultPermissions': [
                {
                    'Principal': {
                        'DataLakePrincipalIdentifier': 'string'
                    },
                    'Permissions': [
                        'ALL'|'SELECT'|'ALTER'|'DROP'|'DELETE'|'INSERT'|'CREATE_DATABASE'|'CREATE_TABLE'|'DATA_LOCATION_ACCESS',
                    ]
                },
            ],
            'TargetDatabase': {
                'CatalogId': 'string',
                'DatabaseName': 'string',
                'Region': 'string'
            },
            'FederatedDatabase': {
                'Identifier': 'string',
                'ConnectionName': 'string',
                'ConnectionType': 'string'
            }
        },
        Tags={
            'string': 'string'
        }
    )
    
  :type CatalogId: string
  :param CatalogId: 

    The ID of the Data Catalog in which to create the database. If none is provided, the Amazon Web Services account ID is used by default.

    

  
  :type DatabaseInput: dict
  :param DatabaseInput: **[REQUIRED]** 

    The metadata for the database.

    

  
    - **Name** *(string) --* **[REQUIRED]** 

      The name of the database. For Hive compatibility, this is folded to lowercase when it is stored.

      

    
    - **Description** *(string) --* 

      A description of the database.

      

    
    - **LocationUri** *(string) --* 

      The location of the database (for example, an HDFS path).

      

    
    - **Parameters** *(dict) --* 

      These key-value pairs define parameters and properties of the database.

       

      These key-value pairs define parameters and properties of the database.

      

    
      - *(string) --* 

      
        - *(string) --* 

        
  

    - **CreateTableDefaultPermissions** *(list) --* 

      Creates a set of default permissions on the table for principals. Used by Lake Formation. Not used in the normal course of Glue operations.

      

    
      - *(dict) --* 

        Permissions granted to a principal.

        

      
        - **Principal** *(dict) --* 

          The principal who is granted permissions.

          

        
          - **DataLakePrincipalIdentifier** *(string) --* 

            An identifier for the Lake Formation principal.

            

          
        
        - **Permissions** *(list) --* 

          The permissions that are granted to the principal.

          

        
          - *(string) --* 

          
      
      
  
    - **TargetDatabase** *(dict) --* 

      A ``DatabaseIdentifier`` structure that describes a target database for resource linking.

      

    
      - **CatalogId** *(string) --* 

        The ID of the Data Catalog in which the database resides.

        

      
      - **DatabaseName** *(string) --* 

        The name of the catalog database.

        

      
      - **Region** *(string) --* 

        Region of the target database.

        

      
    
    - **FederatedDatabase** *(dict) --* 

      A ``FederatedDatabase`` structure that references an entity outside the Glue Data Catalog.

      

    
      - **Identifier** *(string) --* 

        A unique identifier for the federated database.

        

      
      - **ConnectionName** *(string) --* 

        The name of the connection to the external metastore.

        

      
      - **ConnectionType** *(string) --* 

        The type of connection used to access the federated database, such as JDBC, ODBC, or other supported connection protocols.

        

      
    
  
  :type Tags: dict
  :param Tags: 

    The tags you assign to the database.

    

  
    - *(string) --* 

    
      - *(string) --* 

      


  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {}
      
    **Response Structure**

    

    - *(dict) --* 
  
  **Exceptions**
  
  *   :py:class:`Glue.Client.exceptions.InvalidInputException`

  
  *   :py:class:`Glue.Client.exceptions.AlreadyExistsException`

  
  *   :py:class:`Glue.Client.exceptions.ResourceNumberLimitExceededException`

  
  *   :py:class:`Glue.Client.exceptions.InternalServiceException`

  
  *   :py:class:`Glue.Client.exceptions.OperationTimeoutException`

  
  *   :py:class:`Glue.Client.exceptions.GlueEncryptionException`

  
  *   :py:class:`Glue.Client.exceptions.ConcurrentModificationException`

  
  *   :py:class:`Glue.Client.exceptions.FederatedResourceAlreadyExistsException`

  
  *   :py:class:`Glue.Client.exceptions.FederationSourceException`

  
  *   :py:class:`Glue.Client.exceptions.FederationSourceRetryableException`

  