當前位置:首頁 » 編程語言 » sqlinstance

sqlinstance

發布時間: 2022-08-01 12:28:00

sql server 2005伺服器名稱填什麼

第一步:在運行--程序中打開SQL SERVER 2005,打開配置工具--SQL SERVER CONFIGURATION MANAGER,打開SQLSERVER 2005 網路配置、SQLEXPRESS的協議。 然後:選中右邊協議名稱TCP/IP,進入協議設置窗口。 說明:在IP地址欄中輸入本機地址127.0.0.1,TCP埠改為1433,選擇啟用。在IPALL下面的TCP埠中設置為1433。(關鍵) 然後:選擇SQL NATIVE CLIENT 配置下面的客戶端協議中,選擇TCP/IP對話框。 說明:注意客戶端默認埠為1433,所以我們上面設置的TCP/IP埠為1433,選擇啟用。 第二步:在運行--程序中打開SQL SERVER 2005,打開SQL SERVER MANAGEMENT STUDIO窗體,自動彈出新建連接(如果沒有自動彈出,選擇對象資源管理器下面的,新建連接下拉框連接)。 說明:點擊確定,以Windows 身份驗證模式連接到資料庫,右鍵單擊資料庫名。 選擇屬性,進入屬性設置(關鍵步驟)。 選擇安全性,伺服器身份驗證改為SQL Server 和 Windows身份驗證模式,點確定返回。 然後:退出Windows身份驗證模式,新建連接,選擇以SQL Server模式連接。 說明:伺服器名字為伺服器的IP地址,如果是連接本機且本機為伺服器,可以設為127.0.0.1,其他機器連接時需要設置為伺服器的IP地址。身份驗證選擇SQL Server 身份驗證,登錄名為sa,密碼為空,這是SQL自帶的登錄名和密碼,你也可以自己設置用戶名和密碼以及許可權。[完畢]

② 什麼是資料庫的實例instance

Oracle資料庫,實際上應該是說,我們使用的是Oracle服務server。
Oracle服務server包括有兩個部分:

一個部分是Oracle資料庫database

一個部分是資料庫實例instance。

Oracle資料庫database,包括有數據文件、控制文件、重做日誌文件,都是一些物理上的文件。

資料庫實例instance,包括有資料庫後台進程(PMON、SMON、DBWR、LGWR、CKPT等)和內存區域SGA(包括shared pool、db buffer cache、redo log buffer等)。實例是一系列復雜的內存結構和操作系統進程

嚴格的說:一個Oracle服務,只包括一個Oracle實例和一個資料庫(不考慮雙機並行等這樣的情況)。但是一個實例只能對應一個資料庫,一個資料庫有可能對應多個實例。除非使用並行O r a c l e伺服器選項,否則每個O r a c l e資料庫都有一個實例與之相關,一個資料庫被唯一的一個實例裝載。

資料庫與實例之間是1對1/n的關系,在非並行的資料庫系統中每個Oracle資料庫與一個實例相對應;在並行的資料庫系統中,一個資料庫會對應多個實例,同一時間用戶只與一個實例相聯系,當某一個實例出現故障時,其他實例自動服務,保證資料庫正常運行。在任何情況下,每個實例都只可以對應一個資料庫。
在實際的開發應用中,關於Oracle資料庫,經常聽見有人說建立一個資料庫,建立一個Instance,啟動一個Instance之類的話。 其實問他們什麼是資料庫,什麼是Instance,很可能他們給的答案就是資料庫就是Instance,Instance就是資料庫啊,沒有什麼區別。在這里,只能說雖然他們Oracle用了可能有了一定的經驗,不過基礎的概念還是不太清楚。
什麼是資料庫,其實很簡單,資料庫就是存儲數據的一種媒介。比如常用的文件就是一種,在Oracle10G中,數據的存儲有好幾種。第一種是文件形式,也就是在你的磁碟中創建一批文件,然後在這些文件中存儲信息。第二種就是磁碟陣列形式,這個是什麼意思呢,這個就是說明資料庫不是存放為某個文件,而是把一個或者多個磁碟格式化成Oracle的一種格式了,等於整個磁碟就是存放Oracle資料庫的,不能作為別的用途。這樣的優點是存儲性能高,因為不再藉助別的文件格式了,而是把整個磁碟都成為Oracle最適應的文件系統格式。當然還可能有別的形式,比如網路什麼的。不過我們最常用的還是文件格式的,在文件格式中,資料庫指的就是那些數據文件,控制文件以及REDO文件等等一系列文件。
而什麼是Instance呢,Instance其實就是指的操作系統中一系列的進程以及為這些進程所分配的內存塊。在Oracle中,我們可以新建一個Oracle的Instance,這個時候雖然有了進程還有SGA等一系列的內存快,但是這個時候並沒有把資料庫文件讀取進來。所以只是一個實例,在後來,你可以通過命令手動或者自動地把資料庫文件載入進我們的資料庫Instance中,這個時候的資料庫才可以讓我們真正的開始訪問操作。
所以說,資料庫的應用如果想實現,資料庫和資料庫Instance是缺一不可的,如果只有資料庫的那些文件,那麼,只能代表數據在這個文件中,但是我們無法直接進行操作。而如果只有資料庫Instance,那麼我們雖然可以急性操作,但是也不知道操作哪些數據,操作生成的數據也無法保存等等。所以,當一個Oracle Instance真正Load了一個Oracle Database了以後,資料庫才可以被我們使用。
在這里要注意一點的是,Oracle的實例在啟動以後,只能load一次資料庫,如果想把資料庫與Instance斷開,然後再重新掛在一個資料庫Instance,那麼就需要你首先把資料庫Instance進程結束,然後重新建立這個instance的一個進程,再load另外一個資料庫。否則肯定要拋除ORA-16169錯誤,說資料庫已經被打開。因為一個資料庫Instance在其生存期中最多隻能load和打開一個instance。

③ sql server 2008 中 instance 是幹嘛的 如何創建一個instance

資料庫中的一個實例其實就是一組進程,而資料庫而是存儲在磁碟中的文件。實例進程管理著這組文件來提供資料庫的服務。當你創建了一個資料庫,然後啟動這個資料庫的服務,就創建了一個instance。

④ 如何查看和獲取SQL Server實例名

一、查看實例名時可用

1、服務—SQL Server(實例名),默認實例為(MSSQLSERVER)

或在連接企業管理時-查看本地實例

2、通過注冊表
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SQL
Server/InstalledInstance

3、用命令
sqlcmd/osql
sqlcmd -L
sqlcmd -Lc
osql
-L

獲取可用實例,以下舉一個例子,根據自己情況改

復制代碼
代碼如下:

DECLARE @Table TABLE ( instanceName
sysname NULL)

insert @Table EXEC sys.xp_cmdshell 'sqlcmd -Lc'

--LEFT(@@serverName,CHARINDEX('/',@@serverName+'/')-1) 替代為本機名就行了 ,
根據實例命名規則判斷

SELECT * FROM @Table WHERE instanceName LIKE LEFT( @@serverName , CHARINDEX
( '/' , @@serverName + '/' )- 1)+ '%'

二、

--1.
SELECT
SERVERPROPERTY('InstanceName')

--2
sp_helpserver

--3
select
@@SERVERNAME

--4
SELECT * FROM
SYS.SYSSERVERS

--5
SELECT * FROM
SYS.SERVERS

三、

EXECUTE xp_regread
@rootkey='HKEY_LOCAL_MACHINE',
@key='SOFTWARE/Microsoft/Microsoft SQL
Server/Instance Names/SQl',
@value_name='MSSQLSERVER'

四、

Select Case
When SERVERPROPERTY ('InstanceName') Is Null Then
@@SERVERNAME
Else SERVERPROPERTY ('InstanceName')
End

五、在本地或網路得到所有實例名

1、You can do with registry reading , like my code

復制代碼
代碼如下:

using System;
using Microsoft.Win32;

namespace SMOTest
{
class Program
{
static void
Main()
{
RegistryKey rk =
Registry.LocalMachine.OpenSubKey(@"SOFTWARE/Microsoft/Microsoft SQL
Server");
String[] instances =
(String[])rk.GetValue("InstalledInstances");
if (instances.Length
> 0)
{
foreach (String element in
instances)
{
if (element ==
"MSSQLSERVER")

Console.WriteLine(System.Environment.MachineName);

else
Console.WriteLine(System.Environment.MachineName + @"/"
+ element);
}
}
}

}
}

2、You can use SQLDMO.dll to retrieve the list of SQL
Server instances. The SQLDMO.dll can be found from the "C:/Program
Files/Microsoft SQL Server/80/Tools/Bin" folder. Refer this assembly in your
project and the following snippet would return a List Object containing the sql
server instances.

復制代碼
代碼如下:

public static List GetSQLServerInstances()

{
NameList sqlNameList = null;
Application app = null;

var sqlServers = new List();
try
{
app = new
ApplicationClass();
sqlNameList = app.ListAvailableSQLServers();
foreach
(string sqlServer in
sqlNameList)
sqlServers.Add(sqlServer);
}
catch(Exception
ex)
{
//play with the exception.
}
finally
{
if (sqlNameList
!= null)
sqlNameList = null;
if (app != null)
app =
null;
}
return sqlServers;
}

⑤ 與SQL SERVER 安全控制相關的幾點說明

與SQL SERVER安全控制相關的幾點說明

(一)幾個基本術語

身份驗證(Authentication)是指通過提交伺服器評估的憑據以登錄到主體請求訪問的 SQL Server 的過程。身份驗證可以確定接受身份驗證的用戶或進程的標識。

用戶、賬戶、賬號、登錄名、[資料庫]用戶名
用戶是指能夠在SQL Server安全機制下,訪問資料庫對象中的數據的操作員或客戶。用戶若要訪問資料庫對象,必須獲得資料庫管理員(DBA)分配的賬號和密碼。從SQL Server管理系統的角度來看,用戶就是一組匹配的賬戶和密碼。
賬戶和賬號是一個概念的不同說法,在伺服器中的賬戶又叫登錄名(Login Name),因此訪問伺服器也稱為登錄伺服器。伺服器的登錄名可以映射到資料庫中成為[資料庫]用戶名(User Name)。一個登錄名可以映射多個資料庫用戶,而一個用戶只能映射一個登錄名。
連接或登錄SQL Server伺服器時是用的登錄名而非用戶名登錄的,程序裡面的連接字元串中的用戶名也是指登錄名。
通常用戶名與登錄名相同(不是強制相同,但為了一目瞭然通常都在創建用戶名時使用與登錄名相同的名字)。
提示:登錄名(Login Name)和用戶名(User Name)是兩個不同的概念:
登錄名:伺服器方的一個實體,登錄名只能進入SQL Server伺服器,但是不能讓用戶訪問伺服器中的資料庫資源。
用戶名:一個或多個登錄對象在資料庫中的映射,可以對用戶對象進行授權,以便為登錄對象提供對資料庫的訪問許可權。
登錄名作用於它所在的伺服器。每個登錄名的定義存放在master系統資料庫的syslogins表中。
用戶名作用於它所在的資料庫。用戶定義信息存放在每個資料庫的sysusers表中。用登錄名登錄到SQL Server後,在訪問操作各個資料庫時,SQL Server會自動查詢此資料庫中是否存在與此登錄名關聯的用戶名,若存在就使用此用戶的許可權訪問此資料庫,若不存在就是用guest用戶訪問此資料庫(guest是一個特殊的用戶名,後面會講到)。

SQL身份驗證:適合於非windows平台的用戶或Internet用戶,需要提供賬戶和密碼。
Windows身份驗證:適合於windows平台用戶,利用Windows賬戶和windows集成驗證,不需要提供密碼。
用戶想要操作資料庫的某個對象(如某張表)需要過三關:
第一關:我們需要登錄到SQL Server系統,即需要登錄賬戶;
第二關:我們需要訪問某個資料庫,即需要該資料庫的用戶賬戶;
第三關:我們需要訪問資料庫中的某個對象(如某張表),需要有該對象的許可權。

主體(principal)是可被授予對安全資源的訪問許可權的實體(例如登錄名、用戶、進程、組或角色)。主體可以是主體的集合(比如資料庫角色或Windows組)或不可分割的主體(比如本地登錄或域登錄)。每個主體都具有一個 ID (identification)和一個安全 ID (SID)。
⊙ Windows級別的主體:Windows組、Windows域登錄名、Windows本地登錄名。
⊙ SQL Server級的主體:伺服器角色、SQLServer登錄名。
⊙資料庫級的主體:資料庫角色、資料庫用戶、應用程序角色。

上下文切換 (context switch),更改檢查執行語句或執行操作的許可權時所依據的標識。

伺服器(server)
1)指安裝了SQL SERVER的計算機。2)指SQL Server實例——計算機上運行的 SQLServer的副本。3)指為用戶提供服務的計算機軟體或組件。
需要根據上下文理解。

注冊伺服器
注冊伺服器使您可以存儲伺服器連接信息(伺服器的類型、伺服器的名稱、登錄到伺服器時使用的身份驗證的類型等),以供將來連接時使用——下次連接該伺服器時,不需要重新輸入登錄信息。
SQLServer 2000在SQL Server企業管理器中注冊伺服器,才能使用 SQL Server企業管理器來管理這些伺服器。從SQLServer 2005始,在 SQL ServerManagement Studio 中注冊伺服器,才能使用 SQL Server Management Studio 來管理這些伺服器。
在 Microsoft SQL Server中,可以注冊以下類型的伺服器:SQLServer資料庫引擎、Analysis Services、Reporting Services、IntegrationServices和 SQL Server Compact 3.5SP1。

(二)SQL Server實例(SQL Server instance)
SQLServer實例(SQL Server instance),簡稱實例 (instance),是計算機上運行的SQLServer 的副本。同一台計算機上可以安裝運行的多個 SQLServer副本。每個SQL Server實例都包含資料庫引擎、Analysis Services和 ReportingServices的 SQL Server,每個SQL Server資料庫實例各有一套不為其他實例共享的系統及用戶資料庫。
資料庫引擎是用於存儲、處理和保護數據的核心服務。利用資料庫引擎可控制訪問許可權並快速處理事務。
實例又分為「默認實例」(default instance)和「命名實例」(namedinstance),如果在一台計算機上安裝第一個SQLSERVER,命名設置保持默認的話,那這個實例就是默認實例。默認實例與安裝計算機具有相同名稱。命名實例指安裝SQL Server時給定了名稱,可以安裝多個命名實例,給定名稱是為了與同一台計算機上的其他命名實例和默認實例區分開。

SQLServer應用程序可以通過僅指定伺服器名稱而連接到 SQLServer的默認實例。SQL Server應用程序在連接到伺服器上的某個命名實例時必須既指定伺服器名稱又指定實例名稱,計算機名稱\實例名稱。
一台計算機上最多隻有一個默認實例,也可以沒有默認實例,默認實例名與計算機名相同。如果要訪問本機上的默認SQL伺服器實例,使用計算機名、(local)、localhost、127.0.0.1、.、本機IP地址,都可以達到相同的目的。但如果要訪問非本機的SQL伺服器,那就必須使用計算機名稱\實例名稱。

默認實例和命名實例的區別:
1、服務中服務名稱的區別:
(1)默認實例:MSSQLSERVER。
(2)有名命名實例:實列名為benet,在服務中的名稱是MSSQL$BENET。
註:如果你有多個實例的時候會在服務中出現多個服務名稱。
2、連接到查詢分析器或探查器的時候區別:
(1)默認實例可以使用:「.」(點)、「(local)」、「計算機名稱」。
(2)實例名稱:計算機名pcname,實例名benet,連接時使用的名稱是pcname\benet。

(三)安全對象和許可權

安全對象(Securable),可以通過許可權得到保護的實體。是SQLServer資料庫引擎授權系統控制對其進行訪問的資源。如表、視圖、觸發器等。
SQLServer中將安全對象分為三個層次,分別為:
⊙伺服器層級,包含的安全對象:端點、登錄、伺服器角色、資料庫。
⊙資料庫層級,包含的安全對象:用戶、資料庫角色、應用程序角色、程序集、消息類型、路由、服務、遠程服務綁定、全文目錄、證書、非對稱密鑰、對稱密鑰、約定、架構。
⊙構架(SCHEMA)層級,包含的安全對象:類型、XML架構集合、對象(函數、過程、同義詞、表、視圖)
這三個層級是從上到下包含的,級別從高到低。

說明:端點(endpoint)為伺服器級安全對象。Microsoft SQL Server 2005 中的連接管理基於「端點」。一個端點就是一個SQL Server對象,它能夠使 SQL Server在網路中通信。對於資料庫鏡像,伺服器實例需要有自己專用的「資料庫鏡像端點」。此端點用途特殊,專門用於接收來自其他伺服器實例的資料庫鏡像連接。

許可權 (permission),與對象關聯的規則,用來規定哪些用戶可以獲得該對象的訪問許可權以及方式如何。對安全對象的訪問通過授予或拒絕許可權進行控制。
許可權可以明確用戶能夠使用哪些資料庫對象,並對它們進行何種操作。用戶在資料庫內的許可權取決於用戶賬號的許可權和該用戶所屬的角色的許可權。
提示:在設置許可權時,尤其要注意許可權在安全對象上的繼承關系。對於高級別安全對象上設置的許可權,會被自動繼承到低級別安全對象上。
理解許可權的繼承和許可權的覆蓋會在設置許可權時減少很多問題,最佳方法是統籌規劃,上機驗證。

(四)架構(schema)
架構是指包含表、視圖、過程等的容器。它位於資料庫內部,而資料庫位於伺服器內部。這些實體就像嵌套框放置在一起。伺服器是最外面的框,而架構是最裡面的框。架構包含表、視圖、過程、函數、同義詞、類型、隊列、XML架構集合等安全對象。

注意:
在 SQL Server 2000和早期版本中,資料庫可以包含一個名為「架構」的實體, SQL Server 2000包含 CREATE SCHEMA語句,但此實體實際上是所有者(創建對象時的用戶)。在 SQL Server 2005 開始,架構既是一個容器,又是一個命名空間。任何用戶都可以擁有架構,並且架構所有權可以轉移。從 SQL Server 2005開始,每個用戶都擁有一個默認架構。可以使用 CREATE USER或 ALTER USER的 DEFAULT_SCHEMA選項設置和更改默認架構。如果未定義 DEFAULT_SCHEMA,則資料庫用戶將使用 dbo作為默認架構。

在SQL Server 2000中,DataBaseName.dbo.TableName解釋為:資料庫名.所有者.表名。
從 SQL Server 2005開始,DataBaseName.dbo.TableName解釋為:資料庫名.架構名.表名。

在SQL Server 2000中,資料庫對象全稱是server_name.[database_name].[owner_name].object_name
從SQL Server 2005始,資料庫對象全稱是server_name.[database_name].[schema_name].object_name
在SQL SERVER2000或以前版本中創建一個對象,對象必須要有一個所有者(owner)。對象是如何屬於某個所有者的呢?這依賴於創建對象時的用戶。您不能取消對象所有者(object owner)的特權(privileges)。對象所有者可以執行任何與對象有關的操作(例如 INSERT、UPDATE、DELETE、SELECT或 EXECUTE),也可以管理對象的許可權。
從2005/2008後,一個我們必須重新認識的情況是對象不再有所有者(owner)。架構包含對象,架構有所有者。

在2005前(如SQL Server 2000中),沒有架構的概念,只有用戶的概念,那時候DBO是默認用戶。到了2005,有了架構概念,但是為了向後兼容,保留了DBO,並且把DBO作為默認架構,在不指定架構的情況下,默認為dbo,「默認架構」的概念,用於解析未使用其完全限定名稱引用的對象的名稱。在 SQL Server 2005 中,每個用戶都有一個默認架構,用於指定伺服器在解析對象的名稱時將要搜索的第一個架構。可以使用 CREATE USER和 ALTER USER的 DEFAULT_SCHEMA選項設置和更改默認架構。如果未定義 DEFAULT_SCHEMA,則資料庫用戶將把 DBO作為其默認架構。

(五)dbo
dbo既是默認架構,也是默認用戶。在SQL Server 2000中,dbo作為默認用戶。在SQL Server2005中,dbo既作為默認用戶,也作為默認架構(如圖)。

dbo作為默認用戶,dbo (DataBase Owner,資料庫的所有者,擁有資料庫中的所有對象),每個資料庫都有dbo, sysadmin伺服器角色的成員自動映射成dbo,無法刪除 dbo用戶,且此用戶始終出現在每個資料庫中。通常,登錄名sa映射為庫中的用戶dbo。另外,固定伺服器角色 sysadmin的任何成員都映射到每個資料庫內稱為 dbo的一個特殊用戶上。由固定伺服器角色sysadmin的任何成員創建的任何對象都自動屬於 dbo。由固定伺服器角色 sysadmin的任何成員或 dbo用戶創建的任何對象都自動屬於dbo,由任何其他用戶(包括 db_owner固定資料庫角色成員)創建的對象,屬於創建該對象的用戶,而不是 dbo,用創建該對象的用戶名限定。例如:
如果用戶 Andrew是固定伺服器角色sysadmin的成員,並創建表 T1,則表 T1屬於 dbo,並以 dbo.T1而不是 Andrew.T1進行限定。相反,如果 Andrew不是固定伺服器角色sysadmin的成員,而只是固定資料庫角色 db_owner的成員,並創建表 T1,則 T1屬於 Andrew,並限定為Andrew.T1。該表屬於 Andrew,因為該成員沒有將表限定為dbo.T1。

dbo作為默認架構,在不指定架構的情況下,默認為dbo,「默認架構」的概念,用於解析未使用其完全限定名稱引用的對象的名稱。在 SQL Server 2005 中,每個用戶都有一個默認架構,用於指定伺服器在解析對象的名稱時將要搜索的第一個架構。可以使用 CREATE USER和 ALTER USER的 DEFAULT_SCHEMA選項設置和更改默認架構。如果未定義 DEFAULT_SCHEMA,則資料庫用戶將把 DBO作為其默認架構。

(六)Guest用戶
guest用戶不需要映射到登錄名。這種用戶賬號是供資料庫中沒有明確授予許可權給已映射至認證用戶使用的。guest供那些已經成功登錄到SQL SERVER實例,但是卻沒有通過用戶訪問資料庫的許可權的登錄者使用的。

SQLSERVER 2000中guest用戶可以刪除;而2005/2008中是不能刪除的,卻可以取消CONNECT許可權,而且為安全起見,所有用戶定義的資料庫中預設情況下guest用戶的許可權都是被取消了的,可在除master和tempdb之外的任何資料庫中禁用Guest用戶。
在SQL SERVER 2000中,新建的資料庫中沒有Guest用戶,但可以添加它,也可刪除它,添加與刪除方法與普通資料庫相同。
在SQL Server 2005或以上版本中GUEST已經默認存在於每個資料庫中,但默認情況下,會在新資料庫中禁用GUEST用戶(在「對象資源管理器→安全性→登錄」節點中圖標上有禁用標識),我們可以通過以下語句啟用GUEST用戶:GRANT CONNECT TO GUEST 。當你決定不再想讓該資料庫被非資料庫授權的用戶以GUEST身份進行訪問時,可以再次將GUEST帳號禁用。值得一提的是,GUEST用戶在資料庫中不能被刪除,我們只能通過以下語句禁用GUEST用戶:REVOKE CONNECT FROMGUEST 。

在SQL SERVER 2000中,要允許guest用戶帳戶訪問資料庫,可以像添加其它資料庫用戶那樣添加它,如:
USE<Database Name>
GO
EXECsp_grantdbaccess 'guest'
GO

在SQL SERVER 2005中,允許guest用戶帳戶
USE<Database Name>
GO
GRANT CONNECT TO GUEST
GO

需要提醒的是,對於是否添加Guest用戶要謹慎權衡利弊。

--SQLServer 2000刪除guest用戶賬號
USE<Database Name>
GO
EXECsp_revokedbaccess 'guest'
GO

-- SQLServer 2005禁用guest用戶賬號
USE<Database Name>
GO
REVOKECONNECT FROM GUEST
GO

(七)sa登錄名
SQLServer的 sa登錄名是伺服器級的主體。默認情況下,該登錄名是在安裝實例時創建的。在 SQL Server 2005和 SQL Server2008中,sa的默認資料庫為 master。這是對早期版本的 SQLServer的行為的更改。

sa(system administrator系統管理員)是為向後兼容而提供的特殊登錄。sysadmin是一種角色。該角色能夠執行SQLServer上的任何操作。本質上,任何具有這種角色成員身份的人都是那個伺服器上的sa。這種伺服器角色的創建為微軟提供了某一天去除sa登錄的能力——實際上,聯機叢書把sa稱作本質上為遺留物的東西。

與以前版本不同,SQL Server 2008,即使是用混合模式安裝,sa也默認禁用。
注意,sa是一個默認的SQL Server登錄名,擁有操作SQL Server系統的所有許可權,該登錄名不能被刪除。當採用混合模式安裝Microsoft SQL Server系統之後,應該為sa指定一個密碼,應為 sa登錄分配一個強密碼(strongpassword)。

sa登錄名會映射到 sysadmin固定伺服器角色,它對整個伺服器有不能撤銷的管理憑據。如果攻擊者以系統管理員的身份獲取了訪問許可權,則可能造成的危害是無法預計的。

(八)其它幾個默認配置的的登錄(Logins)和用戶(Users)
默認配置的的登錄和用戶除了dbo用戶、Guest用戶、sa登錄,還有如下幾個:

Administrators組是一個特殊的登錄。administrator用戶默認administrators組的成員。
Administrators組實際名稱為BUILTIN\Administrators。早期版本,這個組的所有成員均為 sysadmin 角色的成員(這意味著Administrators組中的成員具有最高許可權),但可以從該角色中移除這些成員。與以前版本不同,SQL Server 2008默認情況下,本地 Windows組 BUILTIN\Administrators不再包含在新的 SQL Server 2008安裝上的 SQL Server的 sysadmin固定伺服器角色中。

提示:每個版本的 SQL Server都具有不同的安全功能,默認配置也不盡相同,後出的版本更有利於安全,但安全性和使用方便這兩種需求可能有矛盾的一面,最佳方法是上機了解驗證。

NETWORKSERVICE和SYSTEM登錄賬戶
NETWORKSERVICE和SYSTEM登錄賬戶,實際名稱為NT AUTHORITY\NETWORK SERVICE和NT AUTHORITY\SYSTEM,是否存在這些,依賴於伺服器的配置。如果配置了報表伺服器,將出現NETWORK SERVICE登錄賬戶。

INFORMATION_SCHEMA和sys用戶
INFORMATION_SCHEMA和sys又是SQL Server 預定義的架構(內置架構)名稱,它們與INFORMATION_SCHEMA和sys用戶具有相同的名稱。不能刪除,主要用於向後兼容性。可以使用INFORMATION_SCHEMA用戶和sys用戶訪問INFORMATION_SCHEMA和sys架構的系統視圖,獲取有關資料庫元數據信息。

(九)SQL Server中的角色
角色 (role),是SQL Server用來管理伺服器和資料庫許可權的,是安全帳戶的集合,在管理許可權時可以視為一個單元——作為分配許可權的單位。
SQLServer中的角色分為伺服器級別和資料庫級別角色。

◇伺服器級別角色
伺服器級別角色用於幫助管理伺服器上的許可權。伺服器角色的許可權作用域為伺服器范圍。可以將登錄名(Login Name)添加到伺服器角色。

符合許可權要求的用戶,可以將伺服器級主體(SQL Server登錄名、Windows帳戶和 Windows組)添加到伺服器級角色。固定伺服器角色的每個成員都可以將其他登錄名添加到該同一角色。

固定伺服器角色簡介:
1)sysadmin:系統管理員,角色成員可對SQLServer伺服器進行所有的管理工作,為最高管理角色。這個角色一般適合於資料庫管理員(DBA)。
2)securityadmin:安全管理員,角色成員可以管理登錄名及其屬性。可以授予、拒絕、撤銷伺服器級和資料庫級的許可權。另外還可以重置SQL Server登錄名的密碼。
3)serveradmin:伺服器管理員,角色成員具有對伺服器進行設置及關閉伺服器的許可權。
4)setupadmin:設置管理員,角色成員可以添加和刪除鏈接伺服器,並執行某些系統存儲過程。
5)processadmin:進程管理員,角色成員可以終止SQLServer實例中運行的進程。
6)diskadmin:用於管理磁碟文件。
7)dbcreator:資料庫創建者,角色成員可以創建、更改、刪除或還原任何資料庫。
8)bulkadmin:可執行BULK INSERT語句,但是這些成員對要插入數據的表必須有INSERT許可權。BULK INSERT語句的功能是以用戶指定的格式復制一個數據文件至資料庫表或視圖。
9)在sql server 2005 sp2(補丁)及以後版本,伺服器角色中還可以看到一個public角色。每個 SQL Server登錄名均屬於 public伺服器角色。 如果未向某個伺服器主體授予或拒絕對某個安全對象的特定許可權,該用戶將繼承授予該對象的 public角色的許可權。public伺服器角色默認擁有 VIEW ANY DATABASE(查看任何資料庫)許可權。[VIEW ANY DATABASE許可權控制是否顯示sys.databases和 sys.sysdatabases視圖以及 sp_helpdb系統存儲過程中的元數據(metadata)。]

從 SQL Server 2012開始,您可以創建用戶定義的伺服器角色,並將伺服器級許可權添加到用戶定義的伺服器角色。
每個版本的 SQL Server都具有不同的安全功能,版本越高,功能越強。

可以利用系統函數IS_SRVROLEMEMBER指示當前用戶的 SQLServer登錄名是否是固定伺服器角色的成員。
可以利用系統存儲過程sp_helpsrvrolemember返回有關 SQL Server 固定伺服器角色成員的信息。
--查詢 sysadmin固定伺服器角色的成員。
execsp_helpsrvrolemember 'sysadmin'

◇資料庫級別的角色
資料庫級別角色用於幫助管理資料庫中的許可權。資料庫級角色的許可權作用域為資料庫范圍。可以將[資料庫]用戶名(User Name)添加到資料庫角色。
SQLServer中有兩種類型的資料庫級角色:資料庫中預定義的「固定資料庫角色」和您可以創建的「靈活資料庫角色」(自定義資料庫角色)。

固定資料庫角色是在資料庫級別定義的,並且存在於每個資料庫中。 db_owner和db_securityadmin資料庫角色的成員可以管理固定資料庫角色成員身份。但是,只有db_owner資料庫角色的成員能夠向db_owner固定資料庫角色中添加成員。 msdb資料庫中還有一些特殊用途的固定資料庫角色。

符合許可權要求的用戶,可以向資料庫級角色中添加資料庫帳戶和其他 SQL Server角色。固定資料庫角色的每個成員都可向同一個角色添加其他登錄名。

固定資料庫角色簡介:
1)db_owner:資料庫所有者,這個資料庫角色的成員可執行資料庫的所有管理操作。
2)db_accessadmin:資料庫訪問許可權管理者,角色成員具有添加、刪除資料庫使用者、資料庫角色和組的許可權。
3)db_securityadmin:資料庫安全管理員,角色成員可管理資料庫中的許可權,如設置資料庫表的增加、刪除、修改和查詢等存取許可權。
4)db_ddladmin:資料庫DDL管理員,角色成員可增加、修改或刪除資料庫中的對象。
5)db_backupoperator:資料庫備份操作員,角色成員具有執行資料庫備份的許可權。
6)db_datareader:資料庫數據讀取者,角色成員可以從所有用戶表中讀取數據。
7)db_datawriter:資料庫數據寫入者,角色成員具有對所有用戶表進行增加、刪除、修改的許可權。
8)db_denydatareader:資料庫拒絕數據讀取者,角色成員不能讀取資料庫中任何錶的內容。
9)db_denydatawriter:資料庫拒絕數據寫入者,角色成員不能對任何錶進行增加、刪修、修改操作。
10)public:是一個特殊的資料庫角色,每個資料庫用戶都是public角色的成員,因此不能將用戶、組或角色指派為public角色的成員,也不能刪除public角色的成員。public資料庫角色默認的許可權很少[使用某些系統過程查看並顯示master資料庫中的信息;執行一些不需要一些許可權的語句(例如PRINT)]。

可以利用系統函數IS_MEMBER檢查當前用戶是否是資料庫角色或Windows域組的成員。
可以利用系統存儲過程sp_helprolemember顯示資料庫角色的成員。
可以利用系統存儲過程sp_helpuser報告有關當前資料庫中資料庫級主體的信息。
可以利用系統存儲過程sp_helprotect報告當前資料庫中某對象的用戶許可權或語句許可權的信息。

--查詢用戶擁有的資料庫角色
useyourdb
execsp_helpuser 'UserName'
go
--查詢用戶被賦予的許可權
useyourdb
execsp_helprotect @username = 'user name'

⑥ 安裝app-v server,報錯cannot connect to the sql instance怎麼辦

要安裝APP-V並實現全部的功能,需要的步驟並不算很多,下面都是必須做到的步驟:
1、安裝前的環境搭建:建立域控制器,安裝.Net Framework 2.0,IIS服務,MSXML6.0等系統環境組件,另外,資料庫SQL Server也是必須的。
2、安裝程序虛擬化伺服器端Application Virtualization Management Server。
3、安裝客戶端Application Virtualization Client。
4、安裝程序序列化工具Application Virtualization Sequencer。
一、系統准備,安裝活動目錄,.Net Framework 2.0, IIS, MSXML6.0,在安裝過程前也會對現有系統做檢測,缺少哪些部件也會給出提示,算是半傻瓜化操作。不過這些缺少的組件或補丁需要用戶自行下載安裝,如果能在安裝程序種集成到一個包中會更加方便些,否則APP-V安裝過程也許會被打斷。
在Windows Server 2003下,添加刪除程序處添加組件,安裝好.Net Framework 2.0, IIS組件。安裝SQL Server資料庫(裡面已經包含了MSXML組件),這些稍後會用到,否則安裝過程會被終止而不是回退到上一步。
之前也提到了APP-V需要資料庫的支持,所以先安裝SQL Server資料庫,新建好用於程序虛擬化的資料庫,這樣前期工作就算是做好了。
安裝Application Virtualization Management Server
在App-V 4.5中,Server共分為Application Virtualization Management Server與Application Virtualization Streaming Server兩種,Application Virtualization Management Server使用 Active Directory 組來管理用戶授權。除了Active Directory域服務以外,這些伺服器還安裝了SQL Server,以管理資料庫和數據存儲。Management Server 通過Application Virtualization Management Console(Microsoft Management Console 的一個管理單元)得以控制。由於 Application Virtualization Management Server 會按照需要將應用程序傳輸給最終用戶,因此理想情況下這些伺服器適合執行更具有可靠、高帶寬LAN的系統配置。
而後者Application Virtualization Streaming Server,可以滿足可能不具備支持Management Server的基礎結構的公司的需要。與Application Virtualization Management Server不同,Streaming Server不使用SQL或Management Console。這些伺服器使用訪問控制列表 (ACL)來授予用戶授權,這種架構比較適合在中小型企業,節點較少同業也不具備大型資料庫支持的小型網路環境中。
我們打開MDOP 2008R2的安裝界面,選擇Application Virtualization for Desktop 4.5進行安裝。
3.進入安裝界面,一路Next。
APP-V Server Mnangement組件不多,默認情況下是全部安裝,需要的磁碟空間在400M左右。
這里用到了我們裝的SQL Server資料庫,假如系統檢測不到有資料庫的存在,點下一步就會自動報錯。因為SQL Server就裝在本地,所以這里直接選local。所有通信埠都採用默認設置,如果默認埠已經被佔用的話,也要記住改用的埠,在稍後的配置時還會用到,如果伺服器和客戶端之間不匹配,後果自然是失敗了。
安裝默認554的埠。
然後需要為APP-V指定兩個管理和用戶的組,這在之前設置動態目錄的時候需要預先新建出來,用不同的組給APP-V賦予不同許可權,管理員可以進行Server的管理,用戶用於登陸接受伺服器分發的虛擬化程序。
選擇Content的位置,Content目錄用於存放經過序列化分拆的程序包OSD文件,伺服器會從此向組內客戶端分發程序。默認路徑會比較深,找起來很麻煩,當然也可以自定義。
這一步比較關鍵的是要將此文件夾共享,可以向Admin和User組內成員開放共享,為方便起見也可以將文件夾share給everyone,而且everyone有讀取許可權才有用,這一步十分關鍵,完成這一步,安裝完成。
完成以後在「管理工具」內就出現「APP-V management console」控制台項目,運行啟動,選擇右邊的Connect to Application Virtualization System連接服務端。
即使Server端安裝在本地,但也要給出完整計算機名稱、通信協議類型和埠。
用記事本打開content下的DefaultApp.osd,注意選中的地方,將協議改為RSTP,埠改為與安裝時候的一致,不得不說DefaultApp.osd默認的322竟然和安裝時默認的554不統一,這種小細節最有可能煩死人了。
將左邊窗口展開,點擊Applications,在中間窗口右擊Default Application,選擇屬性。這一步非常的關鍵,一定要將OSD Path和Icon Path的本地路徑進行修改,要選擇為網路路徑,否則後面會配置不了,因為content已經設置為共享文件夾,所以其他用戶通過網路地址可以訪問到。
可以根據需要,設置Shortcuts屬性, 可以選擇將其派發至客戶端指定的位置:桌面、開始菜單或者快速啟動欄。
安裝Application Virtualization Client
在客戶端上選擇安裝Application Virtualization Client程序。
過程中,注意要選擇的自定義,否則會錯過很多設置項目,從前面大家可能都心裡有數了,即便是默認設置,APP-V也並沒有完全遵守默認規則,所以還是自定義比較踏實,畢竟自己改動的地方要改回來也是心裡有數吧。
客戶端會映射一個共享的網路磁碟也就是剛才我們在服務端共享的content文件夾。我們可以看到首選驅動器號為Q,往後一直到Z都可選,這基本上不會和本地磁碟混淆。
在立即設置發布伺服器上一定要打勾,類型選擇Application Virtualization Server,正確填寫主機名,埠填寫我們使用的554埠,總之和先前填寫要一致,最後一個選項打勾。
安裝完成以後記得要重啟系統,然後打開Application Virtualization Client選擇發布伺服器,可以看到TEST伺服器,右鍵選擇refresh server,刷新伺服器信息。
如果在伺服器端已經完成程序虛擬化步驟,刷新伺服器發布信息以後,桌面、開始菜單或者之前指定的位置出現程序的圖標,且可以運行。這表示server與client之間可以正常通信,安裝成功。

⑦ 在sqlserver中,"默認實例"是個什麼概念,有它和沒有它在使用上有何區別

安裝sqlserver時,都要創建"實例",並自動取名,自動取名的"實例",就叫"默認實例",也可以更名。使用中沒什麼影響,一般不會用到它。

⑧ 在sqlserver2005中怎樣查看instance名

ssms中運行 select @@servername
如果是mssqlserver 那它就沒instance 是默認實例
否則的 就是\後面的那串字元就是 instance

熱點內容
起床的戰爭玩什麼伺服器 發布:2025-01-23 21:03:06 瀏覽:140
企業級安卓手機防毒軟體哪個好 發布:2025-01-23 20:59:28 瀏覽:242
資料庫精美 發布:2025-01-23 20:37:05 瀏覽:234
mysql怎麼編譯驅動 發布:2025-01-23 20:35:15 瀏覽:466
修改資料庫的語句是 發布:2025-01-23 20:26:17 瀏覽:761
linuxping域名 發布:2025-01-23 20:24:34 瀏覽:478
神經網路演算法應用 發布:2025-01-23 20:18:36 瀏覽:218
冒險島按鍵精靈腳本下載 發布:2025-01-23 19:46:50 瀏覽:751
安卓訪問共享需要開通什麼服務 發布:2025-01-23 19:43:01 瀏覽:518
vs2015c語言調試 發布:2025-01-23 19:42:47 瀏覽:142