feat: dynamic secret for oracle

This commit is contained in:
Akhil Mohan
2024-04-17 18:59:25 +05:30
parent a8264b17e4
commit 62aa23a059
6 changed files with 277 additions and 183 deletions
@@ -21,7 +21,8 @@ export enum DynamicSecretProviders {
export enum SqlProviders {
Postgres = "postgres",
MySql = "mysql2"
MySql = "mysql2",
Oracle = "oracledb"
}
export type TDynamicSecretProvider = {
@@ -77,6 +77,15 @@ const getSqlStatements = (provider: SqlProviders) => {
};
}
if (provider === SqlProviders.Oracle) {
return {
creationStatement:
'CREATE USER "{{username}}" IDENTIFIED BY \'{{password}}\';\nGRANT CONNECT TO "{{username}}";\nGRANT CREATE SESSION TO "{{username}}";',
renewStatement: "",
revocationStatement: 'REVOKE ALL PRIVILEGES FROM "{{username}}";\nDROP USER "{{username}}";'
};
}
return {
creationStatement:
"CREATE USER \"{{username}}\" WITH ENCRYPTED PASSWORD '{{password}}' VALID UNTIL '{{expiration}}';\nGRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO \"{{username}}\";",
@@ -208,6 +217,7 @@ export const SqlDatabaseInputForm = ({
>
<SelectItem value={SqlProviders.Postgres}>PostgreSQL</SelectItem>
<SelectItem value={SqlProviders.MySql}>MySQL</SelectItem>
<SelectItem value={SqlProviders.Oracle}>Oracle</SelectItem>
</Select>
</FormControl>
)}
@@ -193,6 +193,7 @@ export const EditDynamicSecretSqlProviderForm = ({
>
<SelectItem value={SqlProviders.Postgres}>PostgreSQL</SelectItem>
<SelectItem value={SqlProviders.MySql}>MySQL</SelectItem>
<SelectItem value={SqlProviders.Oracle}>Oracle</SelectItem>
</Select>
</FormControl>
)}