예제 #1
0
        private void PrepareDatabase()
        {
            MasterConnection.Open();
            try
            {
                var timeout = MasterConnection.ConnectionTimeout;

                var userCount = MasterConnection.QuerySingle <int>(@"
SELECT 
    COUNT(*) USER_COUNT
FROM SYS.DBA_USERS
WHERE
    USERNAME = :UserName", new
                {
                    UserName = _userName
                }, null, timeout);
                if (userCount > 0)
                {
                    if (_dropUser)
                    {
                        MasterConnection.Execute($"DROP USER {_userName} CASCADE", null, null, timeout);
                    }
                    else
                    {
                        return;
                    }
                }
                MasterConnection.Execute($@"CREATE USER {_userName} IDENTIFIED BY {_userPassword}", null, null, timeout);
                MasterConnection.Execute($@"GRANT DBA TO {_userName}", null, null, timeout);
            }
            finally
            {
                MasterConnection.Close();
            }
        }
예제 #2
0
        private void PrepareDatabase()
        {
            MasterConnection.Open();
            try
            {
                var timeout = MasterConnection.ConnectionTimeout;

                var dbId = MasterConnection.QuerySingleOrDefault <long?>(
                    "SELECT DB_ID(@DatabaseName) as DatabaseId", new
                {
                    DatabaseName = _databaseName
                }, null, timeout);
                if (dbId.HasValue)
                {
                    if (_dropDatabase)
                    {
                        MasterConnection.Execute("DROP DATABASE " + _databaseName, null, null, timeout);
                    }
                    else
                    {
                        return;
                    }
                }
                MasterConnection.Execute("CREATE DATABASE " + _databaseName, null, null, timeout);
            }
            finally
            {
                MasterConnection.Close();
            }
        }