資料庫備份、還原、刪除、收縮,創建登錄用戶,資料庫用戶等操作腳本

来源:https://www.cnblogs.com/adsoft/archive/2019/12/06/11997888.html
-Advertisement-
Play Games

記錄一下/ --備份資料庫 use [master] go BACKUP DATABASE [LnkSys11] TO DISK = N'C:\BackUp\LnkSys11.bak' WITH --備份文件存放路徑 NOFORMAT, INIT, --INIT:覆蓋備份;NOINIT: 追加備份 ...


記錄一下/

--備份資料庫
use [master]
go
BACKUP DATABASE [LnkSys11] TO 
DISK = N'C:\BackUp\LnkSys11.bak' WITH   --備份文件存放路徑
NOFORMAT,
INIT,    --INIT:覆蓋備份;NOINIT: 追加備份
NAME = N'LnkSys11-Full Database Backup', 
SKIP, 
NOREWIND, 
NOUNLOAD, 
STATS = 10
GO

--刪除資料庫
drop database [LnkSys11]
go

--創建登陸帳戶(create login)
if not exists (select 1 from master.dbo.syslogins where Loginname='test')
  create login test with password='1234567890', CHECK_POLICY = OFF, default_database=master
go

--還原資料庫
USE [master];
GO
RESTORE DATABASE [LnkSys11] FROM
DISK = N'C:\BackUp\LnkSys11.bak'    --待還原文件位置
WITH FILE = 1,
--資料庫文件,日誌文件存放路徑,
MOVE N'WCS_Data' TO N'c:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\data\LnkSys11.mdf',
MOVE N'WCS_Log' TO N'c:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\data\LnkSys11.ldf',
RECOVERY,
NOUNLOAD,
--replace,    --替換已有資料庫
STATS = 10
GO

--收縮資料庫,和日誌文件
-----------begin-----------
use [LnkSys11]
go
alter database [LnkSys11] set recovery simple with NO_WAIT
go
alter database [LnkSys11] set recovery simple 
go
--收縮日誌文件
declare @name varchar(50),
        @sql  varchar(100);
SELECT @name = [NAME] FROM sys.database_files where [type]=1
set @sql = 'dbcc shrinkfile(N'''+@name+''', 10, truncateonly)';
exec (@sql)
go
dbcc shrinkdatabase([LnkSys11])
go
--恢複數據庫為完整模式
alter database [LnkSys11] set recovery full with NO_WAIT
go
alter database [LnkSys11]  set recovery full
go
-----------end-----------

--創建資料庫(LnkSys11)用戶
use [LnkSys11]
go
if exists (select 1 from sys.sysusers where issqluser=1 and name='test')
  exec sp_dropuser 'test'
create user test for login test with default_schema=dbo
go
exec sp_addrolemember 'db_owner', 'test'
go

--判斷是否存在用戶自定義用戶,如果存在則刪除。
if exists(select * from sys.database_principals where name='test')
begin 
  declare @UserRole varchar(20), 
          @SQL varchar(300);
  --獲取用戶擁有的角色信息。
  declare cur_UserRole cursor for select [name] from sys.schemas where principal_id=user_id('test')
  open cur_UserRole 
  fetch next from cur_UserRole into @UserRole 
  while @@fetch_status=0
  begin
    --把架構所有者修改回來架構自身
    set @SQL = 'alter authorization on schema::['+@UserRole+'] to ['+@UserRole+']; ';
    --刪除角色擁有的成員 需要高版本(SQL2017測試通過),2008 R2 無效
    set @SQL = @SQL+'alter role ['+@UserRole+'] drop member [test]';
    exec(@SQL);
    fetch next from cur_UserRole into @UserRole
  end
  close cur_UserRole;
  deallocate cur_UserRole;
  --刪除用戶
  drop user [test];
end;
go 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Xtrabackup是一個對InnoDB做數據備份的工具,支持線上熱備份。 1.安裝percona倉庫 yum -y install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4 ...
  • 一、安裝JDK 1.卸載舊版本或者系統自帶的JDK (1)列出所有已安裝的JDK rpm -qa | grep jdk (2)卸載不需要的JDK yum -y remove 安裝包名稱 2.下載並解壓JDK (1)下載安裝包 進入到/usr/local目錄下新建java目錄 mkdir java , ...
  • centos7系統yum安裝的php版本為5.4。 因業務需求,開發可能需要php5.6環境。 本文應需而生,介紹從php5.4升級到php5.6。 如需更新到php7環境,步驟一樣。 如果是線上應用,升級前請做好測試並評估風險。 1.查看php當前版本 php -v 2.安裝第三方包 yum in ...
  • 今天重新使用 supervisor 相關命令的時候,發現已經忘了,下麵重新進行記錄一下,進行備忘: supervisorctl restart <application name> ; 重啟指定應用 supervisorctl stop <application name> ; 停止指定應用 sup ...
  • OTP是i.MXRTxxx里一塊特殊的存儲區域,用於存放全部晶元配置信息,其中有一部分配置信息和Boot相關。這塊特殊存儲區域並不在ARM的4G system address空間里,需要用特殊的方式去訪問(讀/寫),如何訪問OTP是本篇文章的重點。 ...
  • systemctl restart docker在docker-hub拉取慢,因為伺服器在外網 直接配置阿裡雲鏡像就可以 首先: vim /etc/docker/daemon.json加入下麵的那句 "registry-mirrors": ["https://o88ff1dn.mirror.aliy ...
  • 今天配置之前項目的時候,發現有些動態鏈接庫變了,想看看現在應用在使用哪些動態鏈接庫的時候,進一步查了點資料; 下麵針對linux動態鏈接庫查找方法和動態鏈接庫位置配置的過程進行記錄: LIBRARY_PATH 和 LD_LIBRARY_PATH 的區別: (參考鏈接) LIBRARY_PATH is ...
  • 總的來說,為四大步: 1.註冊Earthdata用戶。 註冊時需註意的是,最好把所有需打勾的都勾上,在最後【註冊】按鈕前,彈出【人機驗證】才能註冊成功。如果註冊不成功,除了檢查用戶名和密碼是否符合要求外,換臺電腦試試。 2.下載wget(網頁抓取工具)。 註意在Earthdata的具體數據下載【GH ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...