Documentation Index Fetch the complete documentation index at: https://docs.omniql.com/llms.txt
Use this file to discover all available pages before exploring further.
Control database access using DCL (Data Control Language) operations.
Grant Permissions
: GRANT permission ON Entity TO user
Read Permission
: GRANT READ ON User TO analyst
Database Output PostgreSQL GRANT SELECT ON users TO analystMySQL GRANT SELECT ON users.* TO 'analyst'@'localhost'
Write Permission
: GRANT WRITE ON Order TO sales_app
Database Output PostgreSQL GRANT INSERT, UPDATE ON orders TO sales_app
Delete Permission
: GRANT DELETE ON Log TO admin
All Permissions
: GRANT ALL ON User TO admin
Database Output PostgreSQL GRANT ALL PRIVILEGES ON users TO admin
Multiple Permissions
: GRANT READ , WRITE, DELETE ON Order TO app_service
All Tables
: GRANT READ ON * TO analyst
Revoke Permissions
: REVOKE permission ON Entity FROM user
Single Permission
: REVOKE DELETE ON User FROM intern
Database Output PostgreSQL REVOKE DELETE ON users FROM intern
All Permissions
: REVOKE ALL ON User FROM former_employee
Database Output PostgreSQL REVOKE ALL PRIVILEGES ON users FROM former_employee
User Management
Create User
: CREATE USER john WITH PASSWORD secret123
Database Output PostgreSQL CREATE USER john WITH PASSWORD 'secret123'MySQL CREATE USER IF NOT EXISTS 'john'@'localhost' IDENTIFIED BY 'secret123'
Alter User Password
: ALTER USER john WITH PASSWORD newsecret456
Database Output PostgreSQL ALTER USER john WITH PASSWORD 'newsecret456'MySQL ALTER USER 'john'@'localhost' IDENTIFIED BY 'newsecret456'
Drop User
Database Output PostgreSQL DROP USER IF EXISTS johnMySQL DROP USER IF EXISTS 'john'@'localhost'
Role Management
Create Role
Database Output PostgreSQL CREATE ROLE analystMySQL CREATE ROLE IF NOT EXISTS analyst
Assign Role to User
:ASSIGN ROLE analyst TO john
Database Output PostgreSQL GRANT analyst TO johnMySQL GRANT 'analyst' TO 'john'@'localhost'
Revoke Role from User
: REVOKE ROLE analyst FROM john
Database Output PostgreSQL REVOKE analyst FROM johnMySQL REVOKE 'analyst' FROM 'john'@'localhost'
Drop Role
Database Output PostgreSQL DROP ROLE IF EXISTS analystMySQL DROP ROLE IF EXISTS analyst
Permission Types
OmniQL PostgreSQL MySQL Description READSELECTSELECTRead data WRITEINSERT, UPDATEINSERT, UPDATECreate and modify DELETEDELETEDELETERemove records ALLALL PRIVILEGESALL PRIVILEGESFull access
You can also use native permission names (SELECT, INSERT, UPDATE) directly.
Complete Examples
Read-Only Analyst
: CREATE ROLE analyst
: GRANT READ ON User TO analyst
: GRANT READ ON Order TO analyst
: GRANT READ ON Product TO analyst
: CREATE USER jane WITH PASSWORD analyst123
:ASSIGN ROLE analyst TO jane
Application Service Account
: CREATE ROLE app_service
: GRANT READ , WRITE ON User TO app_service
: GRANT READ , WRITE ON Order TO app_service
: GRANT READ , WRITE ON Product TO app_service
: CREATE USER myapp WITH PASSWORD service456
:ASSIGN ROLE app_service TO myapp
Admin User
: CREATE ROLE admin
: GRANT ALL ON User TO admin
: GRANT ALL ON Order TO admin
: GRANT ALL ON Product TO admin
: CREATE USER bob WITH PASSWORD admin789
:ASSIGN ROLE admin TO bob
Database Support
Feature PostgreSQL MySQL MongoDB GRANT/REVOKE Yes Yes Via commands CREATE/DROP USER Yes Yes Via commands ALTER USER Yes Yes Via commands CREATE/DROP ROLE Yes Yes Via commands ASSIGN/REVOKE ROLE Yes Yes Via commands
MongoDB Note
MongoDB uses role-based access control with built-in roles. OmniQL translates to MongoDB admin commands.
// MongoDB equivalent for CREATE USER
db . createUser ({
user: "analyst" ,
pwd: "secret" ,
roles: [{ role: "read" , db: "myapp" }]
});
Limitations
Not currently supported:
Column-level permissions
Schema/database-level permissions
Sequence permissions
Role options (SUPERUSER, LOGIN, etc.)
Multiple tables in single GRANT
Next Steps
Transactions Group operations safely
PostgreSQL PostgreSQL specifics