SQLServer修改登陸賬戶信息

来源:https://www.cnblogs.com/vuenote/archive/2019/01/01/10200662.html
-Advertisement-
Play Games

修改登陸賬戶信息註意事項 如果 CHECK_POLICY設置為ON,則無法使用 HASHED參數。 如果 CHECK_POLICY更改為ON,則將出現以下行為: 用當前的密碼哈希值初始化密碼歷史記錄。 如果 CHECK_POLICY 更改為 OFF,則將出現以下行為: CHECK_EXPIRATIO ...


修改登陸賬戶信息註意事項

如果 CHECK_POLICY設置為ON,則無法使用 HASHED參數。

如果 CHECK_POLICY更改為ON,則將出現以下行為:

  • 用當前的密碼哈希值初始化密碼歷史記錄。

    如果 CHECK_POLICY 更改為 OFF,則將出現以下行為:

  • CHECK_EXPIRATION 也設置為 OFF。

  • 清除密碼歷史記錄。

  • 重置 lockout_time 的值。

如果指定MUST_CHANGE,則CHECK_EXPIRATION和CHECK_POLICY必須設置為ON。 否則,該語句將失敗。

如果CHECK_POLICY設置為OFF,則CHECK_EXPIRATION不能設置為ON。 包含此選項組合的 ALTER LOGIN 語句將失敗。

不能使用帶DISABLE 參數的ALTER_LOGIN來拒絕對Windows 組的訪問。 例如,ALTER_LOGIN [domain\group] DISABLE將返回下列錯誤信息:

"消息 15151,級別 16,狀態 1,第 1 行"

"無法更改登錄名 'Domain\Group',因為它不存在,或者你沒有相應許可權。"

這是設計的結果。

SQL Database中,對連接和伺服器級別的防火牆規則進行身份驗證時所需的登錄數據會暫時緩存在每個資料庫中。 此緩存定期刷新。 若要強制刷新身份驗證緩存並確保資料庫具有最新版本的登錄名錶,請執行DBCC FLUSHAUTHCACHE (Transact-SQL)。

需要ALTER ANY LOGIN許可權。

如果使用CREDENTIAL選項,則還需要ALTER ANY CREDENTIAL許可權。

如果正在更改的登錄名是sysadmin固定伺服器角色的成員或CONTROL SERVER許可權的被授權者,則進行以下更改時還需要CONTROL SERVER許可權:

  • 在不提供舊密碼的情況下重置密碼。

  • 啟用MUST_CHANGE、CHECK_POLICY或CHECK_EXPIRATION。

  • 更改登錄名。

  • 啟用或禁用登錄名。

  • 將登錄名映射到其他憑據。

    主體可更改用於自身登錄的密碼、預設語言以及預設資料庫。

使用SSMS資料庫管理工具修改登陸賬戶信息

1、連接資料庫-》展開安全性-》展開登陸名-》選擇要修改的登陸賬戶-》右鍵點擊-》選擇屬性。

2、在登陸屬性彈出框-》點擊常規-》修改登陸名、密碼、證書、映射到憑據、預設資料庫、語言等。

3、在登陸屬性彈出框-》點擊伺服器角色-》修改伺服器角色(資料庫角色指定了可以訪問相同資料庫對象的一組資料庫用戶)。

4、在登陸屬性彈出框-》點擊伺服器角色-》修改用戶映射(登錄名用於授權並訪問伺服器資源,如果需要訪問資料庫,需要對資料庫內部的用戶進行映射。用戶是資料庫級別的安全主體,訪問資料庫資源是授予給用戶,而不是登錄名。)。

5、在登陸屬性彈出框-》點擊安全對象-》修改資料庫安全對象和安全對象許可權(安全對象,是SQL Server 資料庫引擎授權系統控制對其進行訪問的資源。通俗點說,就是在SQL Server許可權體系下控制的對象,因為所有的對象(從伺服器,到表,到視圖觸發器等)都在SQL Server的許可權體系控制之下,所以在SQL Server中的任何對象都可以被稱為安全對象)。

6、在登陸屬性彈出框-》點擊狀態-》修改登陸賬戶狀態(禁用用戶登陸或者連接資料庫)。

使用T-SQL腳本修改登陸賬戶信息

啟用或禁用此登錄名

語法

--聲明資料庫引用
use database_name;
go

--創建登錄用戶
alter login login_name { enable | disable }
go

語法解析

--database_name
--資料庫名
--login_name
--指定正在更改的SQL Server登錄名的名稱。 域登錄名必須用方括弧括起來,其格式為[domain\user]。
--enable | disable
--啟用或禁用此登錄名。 禁用登錄名不會影響已連接登錄名的行為。
--(使用 KILL 語句終止現有連接。)禁用的登錄名將保留它們的許可權,且仍然可以模擬。

示例

--聲明資料庫引用
use testss;
go

--創建登錄用戶
alter login testuser
disable 
go

示例結果

更改登錄帳戶的屬性

語法

--聲明資料庫引用
use database_name;
go

--修改登錄賬戶屬性
alter login login_name  
with 
password={ 'password' | hashed_password hashed [old_password='oldpassword' [must_change | unlock] ]}[,]
default_database=database[,]  
default_language=language[,]
name=login_name[,]  
check_policy={ on | off }[,]  
check_expiration={ on | off }[,] 
credential=credential_name[,]  
no credential[,]
add credential credential_name[,]  
drop credential credential_name     

語法解析

--database_name
--資料庫名稱

--login_name
--指定正在更改的SQL Server登錄名的名稱。 域登錄名必須用方括弧括起來,其格式為 [domain\user]。

--password='password*'
--僅適用於SQL Server登錄名。指定正在更改的登錄名的密碼。密碼是區分大小寫的。
--與SQL資料庫持續保持活動連接需要至少每隔10小時進行重新授權(由資料庫引擎執行)。
--資料庫引擎使用最初提交的密碼嘗試重新授權,且無需用戶輸入。出於性能原因,在SQL資料庫中重置密碼時,連接將不會重新進行身份驗證,即使該連接因連接池而重置。
--這與本地SQLServer的行為不同。如果自最初授權連接時已更改密碼,則必須終止連接,並使用新密碼建立新連接。具有KILL DATABASE CONNECTION許可權的用戶可使用KILL命令,顯式終止與SQL資料庫的連接。

--password=hashed_password
--僅適用於HASHED關鍵字。指定要創建的登錄名的密碼的哈希值。
--hashed
--僅適用於SQL Server登錄名。 指定在PASSWORD參數後輸入的密碼已經過哈希運算。
--如果未選擇此選項,則在將密碼存儲到資料庫之前,對其進行哈希運算。此選項只能用於在兩台伺服器之間同步登錄名。 切勿使用HASHED選項定期更改密碼。
--old _password='oldpassword'
--僅適用於SQL Server登錄名。要指派新密碼的登錄的當前密碼。密碼是區分大小寫的。

--must_change
--適用範圍: SQL Server 2008 到 SQL Server 2017、並行數據倉庫。
--僅適用於SQL Server 登錄名。 如果包括此選項,則SQL Server將在首次使用已更改的登錄名時提示輸入更新的密碼。

--unlock
--適用範圍:SQL Server 2008到SQL Server 2017、並行數據倉庫。
--僅適用於SQL Server登錄名。 指定應解鎖被鎖定的登錄名。

--default_database=database
--適用範圍:SQL Server 2008到SQL Server 2017。
--指定將指派給登錄名的預設資料庫。

--default_language=language
--適用範圍: SQL Server 2008 到 SQL Server 2017。
--指定將指派給登錄名的預設語言。 所有SQL資料庫登錄名的預設語言為英語,並且無法更改。
--Linux上SQL Server的sa登錄名的預設語言是英語,但可以更改。

--name=login_name
--正在重命名的登錄的新名稱。
--如果是Windows登錄,則與新名稱對應的Windows主體的SID必須匹配與SQL Server中的登錄相關聯的SID。
--SQL Server登錄名的新名稱不能包含反斜杠字元 (\)

--check_expiration={ on | off }
--適用範圍:SQL Server 2008到SQL Server 2017、並行數據倉庫。
--僅適用於SQL Server登錄名。指定是否應對此登錄帳戶強制實施密碼過期策略。預設值為OFF。

--check_policy={ on | off }
--適用範圍:SQL Server 2008到SQL Server 2017、並行數據倉庫。
--僅適用於SQL Server登錄名。指定應對此登錄名強制實施運行SQL Server的電腦的Windows密碼策略。 預設值為ON。

--credential=credential_name
--適用範圍:SQL Server 2008到SQL Server 2017。
--將映射到SQL Server登錄的憑據的名稱。該憑據必須已存在於伺服器中。
--有關詳細信息,請參閱憑據(資料庫引擎)。憑據不能映射到sa登錄名。

--no credential
--適用範圍:SQL Server 2008到SQL Server 2017。
--刪除登錄到伺服器憑據的當前所有映射。

--add credential
--適用範圍:SQL Server 2008到SQL Server 2017。
--將可擴展的密鑰管理 (EKM) 提供程式憑據添加到登錄名。有關詳細信息,請參閱可擴展的密鑰管理(EKM)。

--drop credentiil
--適用範圍:SQL Server 2008到SQL Server 2017。
--從登錄名刪除可擴展密鑰管理 (EKM) 提供程式憑據。有關詳細信息,請參閱可擴展的密鑰管理(EKM)。

示例

--聲明資料庫引用
use testss;
go

--修改登陸賬戶屬性
alter login testuser  
with 
password='1234',
--default_database=database[,]  
--default_language=language[,]
name=testuser,  
check_policy=on,
check_expiration=on 
--credential=credential_name  [,]
--no credential[,]
--add credential credential_name[,]  
--drop credential credential_name    

--可以添加多個伺服器角色
--創建伺服器角色, 伺服器角色用於向用戶授權伺服器範圍內的安全特權
--alter server role [bulkadmin] drop member [testuser];
--go
--alter server role [dbcreator] drop member [testuser];
--go
--alter server role [diskadmin] drop member [testuser];
--go
--alter server role [processadmin] drop member [testuser];
--go
--alter server role [securityadmin] drop member [testuser];
--go
--alter server role [serveradmin] drop member [testuser];
--go
--alter server role [setupadmin] drop member [testuser];
--go
--alter server role [sysadmin] drop member [testuser];
--go


--創建用戶映射,映射到此登錄名的用戶
--use [master]
--go
--drop user [testuser]
--go

--use [msdb]
--go
--drop user [testuser]
--go

--use [ReportServer]
--go
--drop user [testuser]
--go

--use [ReportServerTempDB]
--go
--drop user [testuser]
--go

--use [tempdb]
--go
--drop user [testuser]
--go

--use [testss]
--go
--drop user [testuser]
--go


----聲明資料庫引用
--use [testss]
--go

----授予不安全的程式集
--grant unsafe assembly to testuser;
--go

----授予查看伺服器狀態
--grant view server state to testuser;
--go

----授予查看任意定義
--grant view any definttion to testuser;
--go

----授予查看任意資料庫
--grant view any database to testuser;
--go

----授予創建DDL事件通知
--grant create ddl event notification to testuser;
--go

----授予創建端點
--grant create endpoint to testuser;
--go

----授予創建伺服器角色
--grant create server role to testuser;
--go

----授予創建跟蹤事件通知
--grant create trace event notification to testuser;
--go

----授予創建可用性組
--grant create availability group to testuser;
--go

----授予創建任意資料庫
--grant create any database to testuser;
--go

----授予更改伺服器狀態
--grant alter server state to testuser;
--go

----授予更改跟蹤
--grant alter trace to testuser;
--go

----授予更改任何伺服器角色
--grant alter any server role to testuser;
--go

----授予更改任何可用性組
--grant alter any availability group to testuser;
--go

----授予更改任意登錄名
--grant alter any login to testuser;
--go

----授予更改任意端點
--grant alter any endpoint to testuser;
--go

----授予更改任意伺服器審核
--grant alter any server audit to testuser;
--go

----授予更改任意許可權
--grant alter any connection to testuser;
--go

----授予更改任意連接伺服器
--grant alter any linked server to testuser;
--go

----授予更改任意憑據
--grant alter any credential to testuser;
--go

----授予更改任意事件會話
--grant alter any event session to testuser;
--go

----授予更改任意事件通知
--grant alter any event notification to testuser;
--go

----授予更改任意資料庫
--grant alter any database to testuser;
--go

----授予更改設置
--grant alter settings to testuser;
--go

----授予更改資源
--grant alter resources to testuser;
--go

----授予關閉
--grant shutdown to testuser;
--go

----授予管理大容量操作
--grant administer bulk operations to testuser;
--go

----授予控制伺服器
--grant control server to testuser;
--go

----授予連接SQL
--grant connect sql to testuser;
--go

----授予外部訪問程式集
--grant external access assembly to testuser;
--go

----授予驗證伺服器
--grant authenticate server to testuser;
--go

--設置是否允許連接到資料庫引擎
--deny connect sql to testuser;
--go  
--是否允許登錄
--alter login testuser disable;
--go


----用戶狀態
----聲明預設資料庫引用
--use [testuser]
--go
----是否允許用戶連接到資料庫引擎
--deny connect sql to [testuser];
--go
----是否允許登錄
--alter login [testuser] { enable | disable }
--go

示例結果

 


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

-Advertisement-
Play Games
更多相關文章
  • 方法一: 一、安裝inotify-tools(客戶端),實現數據屬實備份 1、檢查目錄是否有如下文檔,沒有表示操作系統不支持 ls -l /proc/sys/fs/inotify 2、安裝inotify-tools軟體 yum install inotify-tools -y 如果安裝失敗,可能是源 ...
  • Tomcat參數配置相關 by:授客 QQ:1033553122 目的: 對Tomcat配置的點滴學習總結,主要目的在於分析Tomcat與性能相關的一些參數設置,以便性能調優時選擇最優配置 環境: Server version: Apache Tomcat/9.0.0.M1 Java8 配置文件說明 ...
  • [Linux文件類型] - //文件 d //目錄 l //鏈接,類似於windows快捷方式. b //block,塊文件。 c //字元文件 [linux的許可權] $>chmod //修改文件(夾)許可權 $>chmod g-w //去除group中write權. chmod //不受文件許可權控制 ...
  • 今天使用LogMiner找回誤更新的數據時,查詢v$logmnr_contents時,遇到了“ORA-04030: out of process memory when trying to allocate 152 bytes (Logminer LCR c,krvtadc)”錯誤。查了一下My O... ...
  • [20190101]塊內重整.txt--//我不知道用什麼術語表達這樣的情況,我僅僅一次開會對方這麼講,我現在也照用這個術語.--//當dml插入數據到數據塊時,預留一定的空間(pctfree的百分比)不再插入.保留一些空間主要目的為了ITL的增加,以及update時空間增長.--//避免大量的行遷 ...
  • ...
  • 概念:對資料庫中一列或多列值進行排序 優點:提高查詢效率 分類 1. 普通引索和唯一引索 普通引索:基本的引索類型 允許在定義列中插入重覆值和空值 唯一引索 :引索值必須唯一 2. 單列引索和組合引索 單列引索:包含單個列 組合引索:在表的多個欄位組合上創建引索 創建引索 1.語法格式 2.創建普通 ...
  • 2017-01-01 16:42:13 該系列文章鏈接NoSQL 資料庫簡介Redis的安裝及及一些雜項基礎知識Redis 的常用五大數據類型(key,string,hash,list,set,zset)Redis 配置文件介紹 Redis 持久化之RDB Redis 持久化之AOFRedis 主從 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...