1. 程式人生 > >SQL Server 關聯使用者與登入名

SQL Server 關聯使用者與登入名

當在另一臺伺服器恢復資料庫時,資料庫使用者名稱無法與登入名建立關聯,用管理工具無法將登入名與使用者關聯,只能用SQL來實現,具體如下。


use 資料庫名
exec sp_change_users_login 'update_one','使用者名稱','登入名'

說明:使用者名稱和登入名的區別

登入名:伺服器方的一個實體,使用一個登入名只能進入伺服器,但是不能讓使用者訪問伺服器中的資料庫資源。每個登入名的定義存放在master資料庫的syslogins表中

使用者名稱:一個或多個登入物件在資料庫中的對映,可以對使用者物件進行授權,以便為登入物件提供對資料庫的訪問許可權。使用者定義資訊存放在每個資料庫的sysusers表中。

SQLSERVER把登入名與使用者名稱的關係稱為對映。用登入名登入SQLSERVER後,在訪問各個資料庫時,SQLSERVER會自動查詢此資料庫中是否存在與此登入名關聯的使用者名稱,若存在就使用此使用者的許可權訪問此資料庫,若不存在就是用guest使用者訪問此資料庫(guest是一個特殊的使用者名稱,後面會講到)。

一個登入名可以被授權訪問多個數據庫,但一個登入名在每個資料庫中只能對映一次。即一個登入可對應多個使用者,一個使用者也可以被多個登入使用。好比SQLSERVER就象一棟大樓,裡面的每個房間都是一個數據庫.登入名只是進入大樓的鑰匙,而使用者名稱則是進入房間的鑰匙.一個登入名可以有多個房間的鑰匙,但一個登入名在一個房間只能擁有此房間的一把鑰匙。

參考資料:

相關推薦

SQL Server 關聯使用者登入

當在另一臺伺服器恢復資料庫時,資料庫使用者名稱無法與登入名建立關聯,用管理工具無法將登入名與使用者關聯,只能用SQL來實現,具體如下。 use 資料庫名exec sp_change_users_login 'update_one','使用者名稱','登入名' 說明:使用者名

SQL Server 只讀賬號/只讀登入可檢視儲存過程及函式許可權

公司為了收緊生產資料庫的登入名,目前我們公司生產資料庫登入名基本賦予了sa賬戶的許可權,這樣做是很危險的,所以領導要求給運維同事授予資料庫只讀查詢的賬號,但同時又需要讓運維同事可檢視儲存過程,因為儲存過程和函式中有很多攔截異常的判斷,當提示報錯內容時,運維同事可以通過報錯的關

sql server 建立命令列登入

建立登入名 create login loginName with password='password', default_database=database 說明:loginName 是要建立的登入名,password 是要該登入名的密碼 data

繫結sql server資料庫的使用者登入

伺服器重灌系統,重新安裝上sql server,附加上以前的資料庫, 然後以前是每個資料庫都有一個登入用於操作該資料庫,其他資料庫不能操作的, 附加上資料庫後該資料庫安全性裡的使用者能看到以前建立好的使用者,但是在外面的系統級安全性的登入名中沒有對應的使用者,一個登入使用者了又直接提示使用者已存在的, 上網

SQL Server伺服器名稱預設例項不一致的修復方法

--原因分析: --SERVERPROPERTY 函式的 ServerName 屬性與@@SERVERNAME 返回相似的資訊。 --ServerName 屬性提供Windows 伺服器和例項名稱,兩者共同構成唯一的伺服器例項;

SQL Server的備份恢復

能夠 class tor 命令 備份 post database blog 註意 SQL Server的備份與恢復 SQL Server: 備份命令: BACKUP DATABASE test TO disk = ‘c:\test‘ WITH

SQL Server排名函式排名開窗函式

什麼是排名函式?說實話我也不甚清楚,我知道 order by 是排序用的,那麼什麼又是排名函式呢? 接下來看幾個示例就明白了。 首先建立一個表,隨便插入一些資料。 ROW_NUMBER 函式:直接排序,ROW_NUMBER函式是以上升進行直接排序,並且以連續的順序給每一行資料一個唯一的序號。(即排名

SQL Server聚合函式聚合開窗函式

以下面這個表的資料作為示例。 什麼是聚合函式? 聚合函式:聚合函式就是對一組值進行計算後返回單個值(即分組)。聚合函式在計算時都會忽略空值(null)。 所有的聚合函式均為確定性函式。即任何時候使用一組相同的輸入值呼叫聚合函式執行後的返回值都是相同的,無二義性。 COUNT(統計函式):COUNT

sql server遊標建立使用

建立一個遊標,然後遍歷userinfo表的所有資料,列印使用者id和使用者名稱--定義遊標,讓遊標指向sql查詢結果declare demoCursor Cursor for select userName,userId,userAge from userInfo --開啟遊標open demoCursor

SQL Server 資料型別Java型別 對應關係表

SQL Server 型別 JDBC 型別 (java.sql.Types) Java 語言型別 bigint BIGINT long timestamp

再談SQL Server字串拆分表格分列

字串拆分函式 剛工作那會寫了一篇關於字串拆分的文章,那時僅僅是考慮實現就可以了,沒考慮效能、簡潔等因素,現總結一下常用方法以及優劣。 為了考慮程式碼的可讀性和複用性,一般用函式將實現細節封裝,下面介紹幾種常用的方法: 迴圈拆分實現 CREATE FUNCTION [dbo].

淺談sql server聚集索引非聚集索引

今天同事的服務程式在執行批量插入資料操作時,會超時失敗,程式碼debug了幾遍一點問題都沒有,SQL單條插入也可以正常錄入資料,除錯了一上午還是很迷茫,場面一度很尷尬,最後還是發現了問題的根本,原來是另一個同事為了提升查詢效率濫用了索引在搞鬼,沒有合理的運用索引使每次新增和修改資料時效率極低,大批量插入和修改

PCB SQL SERVER 郵箱配置發郵件

 一.開啟SQL SERVER發郵件功能 --開啟發郵件功能 exec sp_configure 'show advanced options',1 reconfigure with override go exec sp_configure 'database mail xps',1 r

SQL SERVER 的釋出訂閱

超詳細的sqlServer分發和訂閱 一、環境說明         兩臺區域網內的PC機         主機:             &nb

SQL Server 2008 中 新建登入使用者 並指定該使用者登入的資料庫及許可權

一、實驗環境 Windows 7 SQL Server 2008 資料庫例項名為 TestDB,新建的使用者名稱為 testUser 二、操作步驟 1、開啟 SQL Server Management Studio,以 Windows身份認證方式登入 2、在物件資源管理器

sql server批量插入更新兩種解決方案

對於sql 來說操作集合型別(一行一行)是比較麻煩的一件事,而一般業務邏輯複雜的系統或專案都會涉及到集合遍歷的問題,通常一些人就想到用遊標,這裡我列出了兩種方案,供大家參考 1.遊標方式 1 DECLARE @Data NVARCHAR(max) 2 SET @Da

SQL Server 聚合函式分組學習(group by)

一、SQLServer裡面的常用的五種聚合函式。 1.Sum(和)-—對於NULL值預設為0 2.MAX(最大值)MIN(最小值) 3.AVG (平均值)—不統計空值,例如存在有四個人,但是隻有三個人有成績,平均成績為:總和/3 4.COUNT(數量) --統計所有人分數總和

SQL server如何徹底刪除登入使用者

下面的示例從當前資料庫刪除使用者 testEXEC sp_dropuser 'test' 下面的示例從 SQL Server 中刪除登入 test。 EXEC sp_droplogin 'test'或者

SQL SERVER 使用者名稱、密碼登入判斷

1、建立users表: CREATE TABLE users ( id INT PRIMARY KEY not null IDENTITY, name VARCHAR(22), pwd VARCHAR

Microsoft SQL Server 2005 使用者'sa'登入失敗(錯誤18456)解決方案圖

使用者'sa'登入失敗(錯誤18456)解決方案圖解 當我們在使用sql server 的時候可能會遇見這樣錯誤提示“無法連線到.,使用者'sa'登入失敗(錯誤18456)”, 如圖: 具體的解決方案: 首先使用管理員身份開啟SQL server ,並且以