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

来源: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
  • 1. 說明 /* Performs operations on System.String instances that contain file or directory path information. These operations are performed in a cross-pla ...
  • 視頻地址:【WebApi+Vue3從0到1搭建《許可權管理系統》系列視頻:搭建JWT系統鑒權-嗶哩嗶哩】 https://b23.tv/R6cOcDO qq群:801913255 一、在appsettings.json中設置鑒權屬性 /*jwt鑒權*/ "JwtSetting": { "Issuer" ...
  • 引言 集成測試可在包含應用支持基礎結構(如資料庫、文件系統和網路)的級別上確保應用組件功能正常。 ASP.NET Core 通過將單元測試框架與測試 Web 主機和記憶體中測試伺服器結合使用來支持集成測試。 簡介 集成測試與單元測試相比,能夠在更廣泛的級別上評估應用的組件,確認多個組件一起工作以生成預 ...
  • 在.NET Emit編程中,我們探討了運算操作指令的重要性和應用。這些指令包括各種數學運算、位操作和比較操作,能夠在動態生成的代碼中實現對數據的處理和操作。通過這些指令,開發人員可以靈活地進行算術運算、邏輯運算和比較操作,從而實現各種複雜的演算法和邏輯......本篇之後,將進入第七部分:實戰項目 ...
  • 前言 多表頭表格是一個常見的業務需求,然而WPF中卻沒有預設實現這個功能,得益於WPF強大的控制項模板設計,我們可以通過修改控制項模板的方式自己實現它。 一、需求分析 下圖為一個典型的統計表格,統計1-12月的數據。 此時我們有一個需求,需要將月份按季度劃分,以便能夠直觀地看到季度統計數據,以下為該需求 ...
  • 如何將 ASP.NET Core MVC 項目的視圖分離到另一個項目 在當下這個年代 SPA 已是主流,人們早已忘記了 MVC 以及 Razor 的故事。但是在某些場景下 SSR 還是有意想不到效果。比如某些靜態頁面,比如追求首屏載入速度的時候。最近在項目中回歸傳統效果還是不錯。 有的時候我們希望將 ...
  • System.AggregateException: 發生一個或多個錯誤。 > Microsoft.WebTools.Shared.Exceptions.WebToolsException: 生成失敗。檢查輸出視窗瞭解更多詳細信息。 內部異常堆棧跟蹤的結尾 > (內部異常 #0) Microsoft ...
  • 引言 在上一章節我們實戰了在Asp.Net Core中的項目實戰,這一章節講解一下如何測試Asp.Net Core的中間件。 TestServer 還記得我們在集成測試中提供的TestServer嗎? TestServer 是由 Microsoft.AspNetCore.TestHost 包提供的。 ...
  • 在發現結果為真的WHEN子句時,CASE表達式的真假值判斷會終止,剩餘的WHEN子句會被忽略: CASE WHEN col_1 IN ('a', 'b') THEN '第一' WHEN col_1 IN ('a') THEN '第二' ELSE '其他' END 註意: 統一各分支返回的數據類型. ...
  • 在C#編程世界中,語法的精妙之處往往體現在那些看似微小卻極具影響力的符號與結構之中。其中,“_ =” 這一組合突然出現還真不知道什麼意思。本文將深入剖析“_ =” 的含義、工作原理及其在實際編程中的廣泛應用,揭示其作為C#語法奇兵的重要角色。 一、下劃線 _:神秘的棄元符號 下劃線 _ 在C#中並非 ...