diff --git a/backend/src/ee/services/secret-rotation-v2/oracledb-credentials/oracledb-credentials-rotation-constants.ts b/backend/src/ee/services/secret-rotation-v2/oracledb-credentials/oracledb-credentials-rotation-constants.ts index 9b7436989..74957c693 100644 --- a/backend/src/ee/services/secret-rotation-v2/oracledb-credentials/oracledb-credentials-rotation-constants.ts +++ b/backend/src/ee/services/secret-rotation-v2/oracledb-credentials/oracledb-credentials-rotation-constants.ts @@ -8,10 +8,10 @@ export const ORACLEDB_CREDENTIALS_ROTATION_LIST_OPTION: TSecretRotationV2ListIte connection: AppConnection.OracleDB, template: { createUserStatement: `-- create user -CREATE USER "infisical_user" IDENTIFIED BY "temporary_password"; +CREATE USER infisical_user IDENTIFIED BY "temporary_password"; -- grant all privileges -GRANT ALL PRIVILEGES TO "infisical_user";`, +GRANT ALL PRIVILEGES TO infisical_user;`, secretsMapping: { username: "ORACLEDB_USERNAME", password: "ORACLEDB_PASSWORD" diff --git a/docs/documentation/platform/secret-rotation/oracledb-credentials.mdx b/docs/documentation/platform/secret-rotation/oracledb-credentials.mdx index d5004f025..b9ba42841 100644 --- a/docs/documentation/platform/secret-rotation/oracledb-credentials.mdx +++ b/docs/documentation/platform/secret-rotation/oracledb-credentials.mdx @@ -15,14 +15,18 @@ description: "Learn how to automatically rotate Oracle Database credentials." An example creation statement might look like: ```SQL -- create user roles - CREATE USER "infisical_user_1" IDENTIFIED BY "temporary_password"; - CREATE USER "infisical_user_2" IDENTIFIED BY "temporary_password"; + CREATE USER infisical_user_1 IDENTIFIED BY "temporary_password"; + CREATE USER infisical_user_2 IDENTIFIED BY "temporary_password"; -- grant necessary privileges - GRANT ALL PRIVILEGES TO "infisical_user_1"; - GRANT ALL PRIVILEGES TO "infisical_user_2"; + GRANT ALL PRIVILEGES TO infisical_user_1; + GRANT ALL PRIVILEGES TO infisical_user_2; ``` + + Username must either be ALL UPPERCASE or not be surrounded by "quotes". Values not surrounded by quotes get automatically transformed to uppercase by Oracle Database. + + To learn more about the Oracle Database permission system, please visit their [documentation](https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/configuring-privilege-and-role-authorization.html). @@ -52,6 +56,10 @@ description: "Learn how to automatically rotate Oracle Database credentials." - **Database Username 1** - the username of the first user that will be used for rotation. - **Database Username 2** - the username of the second user that will be used for rotation. + + Ensure that the usernames are UPPERCASE if they were created without "quotes". + + 5. Specify the secret names that the active credentials should be mapped to. Then click **Next**. ![Rotation Secrets Mapping](/images/secret-rotations-v2/oracledb-credentials/oracledb-credentials-secrets-mapping.png) @@ -93,8 +101,8 @@ description: "Learn how to automatically rotate Oracle Database credentials." "minutes": 0 }, "parameters": { - "username1": "infisical_user_1", - "username2": "infisical_user_2" + "username1": "INFISICAL_USER_1", + "username2": "INFISICAL_USER_2" }, "secretsMapping": { "username": "ORACLEDB_USERNAME", @@ -149,8 +157,8 @@ description: "Learn how to automatically rotate Oracle Database credentials." "lastRotationMessage": null, "type": "oracledb-credentials", "parameters": { - "username1": "infisical_user_1", - "username2": "infisical_user_2" + "username1": "INFISICAL_USER_1", + "username2": "INFISICAL_USER_2" } } } diff --git a/docs/images/secret-rotations-v2/oracledb-credentials/oracledb-credentials-parameters.png b/docs/images/secret-rotations-v2/oracledb-credentials/oracledb-credentials-parameters.png index 9f6c3539c..5dcc68c32 100644 Binary files a/docs/images/secret-rotations-v2/oracledb-credentials/oracledb-credentials-parameters.png and b/docs/images/secret-rotations-v2/oracledb-credentials/oracledb-credentials-parameters.png differ diff --git a/docs/integrations/app-connections/oracledb.mdx b/docs/integrations/app-connections/oracledb.mdx index dd1db0ab4..8cab6371b 100644 --- a/docs/integrations/app-connections/oracledb.mdx +++ b/docs/integrations/app-connections/oracledb.mdx @@ -19,8 +19,14 @@ Infisical supports connecting to OracleDB using a database user. Infisical recommends creating a designated user in your Oracle Database for your connection. ```SQL -- create user - CREATE USER "infisical" IDENTIFIED BY "my-password"; + CREATE USER infisical IDENTIFIED BY "my-password"; + + -- grant create session privileges + GRANT CREATE SESSION TO infisical; ``` + + Username must either be ALL UPPERCASE or not be surrounded by "quotes". Values not surrounded by quotes get automatically transformed to uppercase by Oracle Database. + Depending on how you intend to use your OracleDB connection, you'll need to grant one or more of the following permissions. @@ -32,7 +38,7 @@ Infisical supports connecting to OracleDB using a database user. For Secret Rotations, your Infisical user will require the ability to alter other users' passwords: ```SQL -- enable permissions to alter login credentials - GRANT ALTER USER TO "infisical"; + GRANT ALTER USER TO infisical; ``` diff --git a/frontend/src/components/secret-rotations-v2/forms/SecretRotationV2ParametersFields/shared/SqlCredentialsRotationParametersFields.tsx b/frontend/src/components/secret-rotations-v2/forms/SecretRotationV2ParametersFields/shared/SqlCredentialsRotationParametersFields.tsx index aa317d695..a36162157 100644 --- a/frontend/src/components/secret-rotations-v2/forms/SecretRotationV2ParametersFields/shared/SqlCredentialsRotationParametersFields.tsx +++ b/frontend/src/components/secret-rotations-v2/forms/SecretRotationV2ParametersFields/shared/SqlCredentialsRotationParametersFields.tsx @@ -4,6 +4,7 @@ import { TSecretRotationV2Form } from "@app/components/secret-rotations-v2/forms import { FormControl, Input } from "@app/components/v2"; import { NoticeBannerV2 } from "@app/components/v2/NoticeBannerV2/NoticeBannerV2"; import { SecretRotation, useSecretRotationV2Option } from "@app/hooks/api/secretRotationsV2"; +import { AppConnection } from "@app/hooks/api/appConnections/enums"; export const SqlCredentialsRotationParametersFields = () => { const { control, watch } = useFormContext< @@ -25,7 +26,15 @@ export const SqlCredentialsRotationParametersFields = () => { errorText={error?.message} label="Database Username 1" > - + )} control={control} @@ -38,7 +47,15 @@ export const SqlCredentialsRotationParametersFields = () => { errorText={error?.message} label="Database Username 2" > - + )} control={control}