diff --git a/ChinookDatabase.Test/ChinookDatabase.Test.csproj b/ChinookDatabase.Test/ChinookDatabase.Test.csproj index bf27cac..754d6b2 100644 --- a/ChinookDatabase.Test/ChinookDatabase.Test.csproj +++ b/ChinookDatabase.Test/ChinookDatabase.Test.csproj @@ -3,7 +3,8 @@ net8.0 enable - enable + disable + true diff --git a/ChinookDatabase.Test/appsettings.test.json b/ChinookDatabase.Test/appsettings.test.json index 307b153..46cf323 100644 --- a/ChinookDatabase.Test/appsettings.test.json +++ b/ChinookDatabase.Test/appsettings.test.json @@ -3,7 +3,7 @@ "Chinook_Db2": "Server=localhost;Database=Chinook;User Id=chinook;Password=chinook", "Chinook_MySql": "Server=localhost;Database=Chinook;Uid=chinook;Pwd=chinook;", "Chinook_MySql_AutoIncrement": "Server=localhost;Database=Chinook_AutoIncrement;Uid=chinook;Pwd=chinook;", - "Chinook_Oracle": "Data Source=xe;User Id=chinook;Password=chinook;", + "Chinook_Oracle": "Data Source=localhost:1521/XEPDB1;User Id=c##chinook;Password=chinook;", "Chinook_PostgreSql": "Server=localhost;Database=Chinook;User Id=chinook;Password=chinook;", "Chinook_Sqlite": "Data Source=..\\..\\..\\ChinookDatabase\\DataSources\\Chinook_Sqlite.sqlite", "Chinook_Sqlite_AutoIncrement": "Data Source=..\\..\\..\\ChinookDatabase\\DataSources\\Chinook_Sqlite_AutoIncrementPKs.sqlite", diff --git a/ChinookDatabase/ChinookDatabase.csproj b/ChinookDatabase/ChinookDatabase.csproj index 58e4bf5..6a22c58 100644 --- a/ChinookDatabase/ChinookDatabase.csproj +++ b/ChinookDatabase/ChinookDatabase.csproj @@ -3,7 +3,8 @@ net8.0 enable - enable + disable + $(NoWarn);SYSLIB0051 diff --git a/ChinookDatabase/DataSources/Chinook_Oracle.sql b/ChinookDatabase/DataSources/Chinook_Oracle.sql index d0e4412..39f270e 100644 --- a/ChinookDatabase/DataSources/Chinook_Oracle.sql +++ b/ChinookDatabase/DataSources/Chinook_Oracle.sql @@ -11,27 +11,27 @@ /******************************************************************************* Drop database if it exists ********************************************************************************/ -DROP USER chinook CASCADE; +DROP USER c##chinook CASCADE; /******************************************************************************* Create database ********************************************************************************/ -CREATE USER chinook -IDENTIFIED BY p4ssw0rd +CREATE USER c##chinook +IDENTIFIED BY chinook DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA 10M ON users; -GRANT connect to chinook; -GRANT resource to chinook; -GRANT create session TO chinook; -GRANT create table TO chinook; -GRANT create view TO chinook; +GRANT connect to c##chinook; +GRANT resource to c##chinook; +GRANT create session TO c##chinook; +GRANT create table TO c##chinook; +GRANT create view TO c##chinook; -conn chinook/p4ssw0rd +conn c##chinook/chinook /******************************************************************************* diff --git a/ChinookDatabase/DdlStrategies/OracleStrategy.cs b/ChinookDatabase/DdlStrategies/OracleStrategy.cs index f1c3093..fb9bf2e 100644 --- a/ChinookDatabase/DdlStrategies/OracleStrategy.cs +++ b/ChinookDatabase/DdlStrategies/OracleStrategy.cs @@ -38,28 +38,28 @@ public override string FormatDateValue(string value) _ => "error_" + column.DataType }; - public override string WriteDropDatabase(string databaseName) => $"DROP USER {databaseName.ToLower()} CASCADE;"; + public override string WriteDropDatabase(string databaseName) => $"DROP USER {GetUsername(databaseName)} CASCADE;"; public override string WriteCreateDatabase(string databaseName) { - var name = databaseName.ToLower(); + var username = GetUsername(databaseName); var builder = new StringBuilder(); - builder.AppendFormat("CREATE USER {0}\r\n", name) - .AppendFormat("IDENTIFIED BY p4ssw0rd\r\n") + builder.AppendFormat("CREATE USER {0}\r\n", username) + .AppendFormat("IDENTIFIED BY {0}\r\n", GetPassword(databaseName)) .AppendFormat("DEFAULT TABLESPACE users\r\n") .AppendFormat("TEMPORARY TABLESPACE temp\r\n") .AppendFormat("QUOTA 10M ON users;\r\n\r\n") - .AppendFormat("GRANT connect to {0};\r\n", name) - .AppendFormat("GRANT resource to {0};\r\n", name) - .AppendFormat("GRANT create session TO {0};\r\n", name) - .AppendFormat("GRANT create table TO {0};\r\n", name) - .AppendFormat("GRANT create view TO {0};\r\n", name); + .AppendFormat("GRANT connect to {0};\r\n", username) + .AppendFormat("GRANT resource to {0};\r\n", username) + .AppendFormat("GRANT create session TO {0};\r\n", username) + .AppendFormat("GRANT create table TO {0};\r\n", username) + .AppendFormat("GRANT create view TO {0};\r\n", username); return builder.ToString(); } - public override string WriteUseDatabase(string databaseName) => $"conn {databaseName.ToLower()}/p4ssw0rd"; + public override string WriteUseDatabase(string databaseName) => $"conn {GetUsername(databaseName)}/{GetPassword(databaseName)}"; public override string WriteForeignKeyDeleteAction(ForeignKeyConstraint foreignKeyConstraint) => foreignKeyConstraint.DeleteRule switch { @@ -70,6 +70,9 @@ public override string WriteCreateDatabase(string databaseName) public override string WriteForeignKeyUpdateAction(ForeignKeyConstraint foreignKeyConstraint) => string.Empty; public override string WriteFinishCommit() => "commit;\r\nexit;"; + + private static string GetUsername(String databaseName) => $"c##{databaseName.ToLower()}"; + private static string GetPassword(String databaseName) => databaseName.ToLower(); } } \ No newline at end of file diff --git a/ChinookDatabase/_T4Templates/Chinook.ttinclude b/ChinookDatabase/_T4Templates/Chinook.ttinclude index 1385b00..0e28980 100644 --- a/ChinookDatabase/_T4Templates/Chinook.ttinclude +++ b/ChinookDatabase/_T4Templates/Chinook.ttinclude @@ -6550,28 +6550,28 @@ _ => "error_" + column.DataType }; - public override string WriteDropDatabase(string databaseName) => $"DROP USER {databaseName.ToLower()} CASCADE;"; + public override string WriteDropDatabase(string databaseName) => $"DROP USER {GetUsername(databaseName)} CASCADE;"; public override string WriteCreateDatabase(string databaseName) { - var name = databaseName.ToLower(); + var username = GetUsername(databaseName); var builder = new StringBuilder(); - builder.AppendFormat("CREATE USER {0}\r\n", name) - .AppendFormat("IDENTIFIED BY p4ssw0rd\r\n") + builder.AppendFormat("CREATE USER {0}\r\n", username) + .AppendFormat("IDENTIFIED BY {0}\r\n", GetPassword(databaseName)) .AppendFormat("DEFAULT TABLESPACE users\r\n") .AppendFormat("TEMPORARY TABLESPACE temp\r\n") .AppendFormat("QUOTA 10M ON users;\r\n\r\n") - .AppendFormat("GRANT connect to {0};\r\n", name) - .AppendFormat("GRANT resource to {0};\r\n", name) - .AppendFormat("GRANT create session TO {0};\r\n", name) - .AppendFormat("GRANT create table TO {0};\r\n", name) - .AppendFormat("GRANT create view TO {0};\r\n", name); + .AppendFormat("GRANT connect to {0};\r\n", username) + .AppendFormat("GRANT resource to {0};\r\n", username) + .AppendFormat("GRANT create session TO {0};\r\n", username) + .AppendFormat("GRANT create table TO {0};\r\n", username) + .AppendFormat("GRANT create view TO {0};\r\n", username); return builder.ToString(); } - public override string WriteUseDatabase(string databaseName) => $"conn {databaseName.ToLower()}/p4ssw0rd"; + public override string WriteUseDatabase(string databaseName) => $"conn {GetUsername(databaseName)}/{GetPassword(databaseName)}"; public override string WriteForeignKeyDeleteAction(ForeignKeyConstraint foreignKeyConstraint) => foreignKeyConstraint.DeleteRule switch { @@ -6582,6 +6582,9 @@ public override string WriteForeignKeyUpdateAction(ForeignKeyConstraint foreignKeyConstraint) => string.Empty; public override string WriteFinishCommit() => "commit;\r\nexit;"; + + private static string GetUsername(String databaseName) => $"c##{databaseName.ToLower()}"; + private static string GetPassword(String databaseName) => databaseName.ToLower(); }