123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- using Oracle.ManagedDataAccess.Client;
- using System;
- using System.Collections.Generic;
- using System.Diagnostics;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Oracle11
- {
- public static class DbHelper
- {
- static readonly string connString = "Data Source=127.0.0.1:1521; User Id=TEST; Password=123456;";
- public static void CreateUserIfNotExit(string userName, string pwd)
- {
- GetAllDb(userName, pwd);
- userName = userName.ToUpper();
- //1.创建用户
- string sql = "SELECT username FROM dba_users WHERE username = :username";
- var userObj = OracleHelper.ExecuteScalar(connString, sql,
- new OracleParameter("username", userName));
- if (userObj == null)
- {
- sql = $"create user {userName} identified by {pwd} default tablespace USERS temporary tablespace TEMP profile DEFAULT password expire";
- OracleHelper.ExecuteNonQuery(connString, sql);
- }
- //2.给用户权限
- sql = $"grant dba to {userName}";
- OracleHelper.ExecuteNonQuery(connString, sql);
- sql = $"grant create session to {userName}";
- OracleHelper.ExecuteNonQuery(connString, sql);
- sql = $"grant unlimited tablespace to {userName}";
- OracleHelper.ExecuteNonQuery(connString, sql);
- }
- /// <summary>
- /// 全量备份
- /// </summary>
- /// <param name="oracleAddr">oracle地址(127.0.0.1:1521)</param>
- /// <param name="dbName">数据库实例名(orcl等)</param>
- /// <param name="user">用户名(不区分大小写)</param>
- /// <param name="pwd">密码</param>
- public static void BackupAll(string oracleAddr, string dbName, string user, string pwd)
- {
- string connString = $"Data Source={oracleAddr.Trim()}/{dbName}; User Id={user}; Password={pwd};";
- }
- public static List<string> GetAllDb(string user, string pwd)
- {
- var starInfo = new ProcessStartInfo()
- {
- FileName = "sqlplus",
- Arguments = $"{user}/{pwd} as sysdba",
- UseShellExecute = false,
- };
- starInfo.RedirectStandardInput = true;
- starInfo.RedirectStandardOutput = true;
- var pro = Process.Start(starInfo);
- var str = pro.StandardOutput.ReadLine();
- return null;
- }
- }
- }
|