GeminiDB DynamoDB-Compatible API Authentication
In enterprise applications, different departments or user roles have different data access requirements. If the access permissions of GeminiDB DynamoDB-Compatible API are not managed, data leakage or misoperations may occur. GeminiDB DynamoDB-Compatible API authentication is suitable when the data operation scope of different roles needs to be restricted. You can create multiple GeminiDB DynamoDB-Compatible API users and grant different permissions to them to control table query and write operations on GeminiDB DynamoDB-Compatible instances, improve data security, and protect sensitive data. After obtaining required permissions, the users can isolate and access data of GeminiDB DynamoDB-Compatible instances in multi-tenant or enterprise environments.
Permissions Supported by GeminiDB DynamoDB-Compatible API
GeminiDB DynamoDB-Compatible API authentication means you can control some table permissions through APIs of GeminiDB DynamoDB-Compatible instances. Row or column permissions cannot be controlled.
| 
         Permission Type  | 
       
         Permission Scope  | 
       
         Function  | 
      
|---|---|---|
| 
         CREATE  | 
       
         ALL KEYSPACES  | 
       
         Creates a table with any name.  | 
      
| 
         ALTER  | 
       
         TABLE  | 
       
         Modifies the configuration of a table with a specific name.  | 
      
| 
         DROP  | 
       
         TABLE  | 
       
         Deletes a table with a specific name.  | 
      
| 
         SELECT  | 
       
         TABLE  | 
       
         Queries data of a table with a specific name.  | 
      
| 
         MODIFY  | 
       
         TABLE  | 
       
         Writes data to a table with a specific name.  | 
      
Using CQL Statements to Set User Permissions
- Creating a user 
     
-- Create a common user. CREATE USER <username> WITH PASSWORD 'your_password' NOSUPERUSER;
 
      - New users do not have any permissions before being authorized.
 - 
         
The password of a new user must contain 8 to 32 characters and at least two types of the following characters: uppercase letters, lowercase letters, digits, and special characters ~!@#%^*-_=+?
For more information, see Resetting the Administrator Password.
 
 - Assigning permissions to a user 
     
-- Grant the permission of creating tables to the user. GRANT CREATE ON ALL KEYSPACES TO <username>;
-- Grant the table-level query permission to the user. GRANT SELECT ON TABLE <table_name>.<table_name> TO <username>;
-- Grant the table-level insert, update, and delete permissions to the user. GRANT MODIFY ON TABLE <table_name>.<table_name> TO <username>;
 - Viewing user permissions 
     
LIST ALL PERMISSIONS OF <username>;
 - Removing user permissions 
     
-- Revoke the SELECT permission on a table from the user. REVOKE SELECT ON TABLE <table_name>.<table_name> FROM <username>;
-- Revoke all permissions on a keyspace from the user. REVOKE ALL PERMISSIONS ON KEYSPACE <table_name> FROM <username>;
 - Deleting a user 
     
DROP USER <username>;
 
      - rwuser is preset when an instance is created. This user has the permission to create all tables.
 - The user who creates a table has all permissions on the table by default.
 - You are advised to use rwuser to create DynamoDB tables and users, and then grant different permissions to the new users.
 
 
User Permissions of GeminiDB DynamoDB-Compatible Instance APIs
| 
         GeminiDB DynamoDB-Compatible Instance API  | 
       
         User Permission  | 
      
|---|---|
| 
         BatchGetItem  | 
       
         Table-level SELECT  | 
      
| 
         BatchWriteItem  | 
       
         Table-level MODIFY  | 
      
| 
         CreateTable  | 
       
         ALL KEYSPACES CREATE  | 
      
| 
         DeleteItem  | 
       
         Table-level MODIFY  | 
      
| 
         DeleteTable  | 
       
         Table-level DROP  | 
      
| 
         DescribeStream  | 
       
         No permissions required  | 
      
| 
         DescribeTimeToLive  | 
       
         No permissions required  | 
      
| 
         DescribeTable  | 
       
         No permissions required  | 
      
| 
         GetItem  | 
       
         Table-level SELECT  | 
      
| 
         GetRecords  | 
       
         Table-level SELECT  | 
      
| 
         GetShardIterator  | 
       
         No permissions required  | 
      
| 
         ListStreams  | 
       
         No permissions required  | 
      
| 
         ListTables  | 
       
         No permissions required  | 
      
| 
         PutItem  | 
       
         Table-level MODIFY  | 
      
| 
         Query  | 
       
         Table-level SELECT  | 
      
| 
         Scan  | 
       
         Table-level SELECT  | 
      
| 
         UpdateItem  | 
       
         Table-level MODIFY  | 
      
| 
         UpdateTable  | 
       
         Table-level ALTER  | 
      
| 
         UpdateTimeToLive  | 
       
         Table-level ALTER  | 
      
Authentication Failure Error
{
    "__type": "AccessDeniedException",
    "message": "User <user_name> has no <permission_name> permission on <data_resource> or any of its parents"
}
  Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot