# Tài khoản sa của SQL SERVER

## Tài khoản “sa” trong SQL Server là gì ?

Tài khoản “sa” trong SQL Server là tài khoản quản trị viên (**System Administrator**) mặc định cho cơ sở dữ liệu SQL Server. Tài khoản “sa” có đầy đủ quyền truy cập vào tất cả các đối tượng trong **SQL Server** và có thể thực hiện tất cả các hoạt động quản trị hệ thống.

Tuy nhiên, do tài khoản “sa” có quyền truy cập mạnh mẽ, việc sử dụng tài khoản này cần được cân nhắc và hạn chế để đảm bảo an toàn và bảo mật hệ thống. Việc sử dụng tài khoản “sa” nên được giới hạn chỉ cho các tác vụ quản trị cần thiết và được bảo vệ bằng mật khẩu mạnh và các biện pháp bảo mật khác.

## Bật/tắt user SA trong SQL Server

#### Khi nào user SA trong SQL Server bị tắt ?

– Khi cài đặt SQL Server chỉ bật chế độ Windows Authentication thì user SA sẽ bị tắt.\
– Khi cần bảo mật cho server thì người quản trị sẽ tắt user SA đi và thay bằng user sysadmin khác, nhằm tránh mục đích lộ user để dò mật khẩu.

#### Cách bật/tắt user SA trong SQL Server

Truy cập vào mục **Security** >> **Login**, Click phải lên tài khoản **sa** chọn **Properties**, chọn **Enabled** (bật) hoặc **Disabled** (tắt).

<figure><img src="/files/174e5IW0ic73o4zbMQT8" alt=""><figcaption></figcaption></figure>

## Bật chế độ Mixed Mode trong SQL SERVER

### Dùng Manager Studio

<figure><img src="/files/LPNvjHItcYE9UwtjRwny" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/yONcJDF9wAU7qMaOAskh" alt=""><figcaption></figcaption></figure>

* Đổi xong phải khởi động lại dịch vụ SQL SERVER

### Dùng Lệnh t-sql

* Copy đoạn code sql sau đưa vào Query Express để chạy:

```sql
-- Bật chế độ mixmode trong registry điền là 2, tắt mixmode là 1
USE [master]
GO
EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', 
     N'Software\Microsoft\MSSQLServer\MSSQLServer', 
     N'LoginMode', REG_DWORD, 2;
GO
-- Chạy lệnh xong khởi động lại dịch vụ SQL
```

* Lệnh kiểm tra xem SQL đang để chế độ nào

```sql
--Kiểm tra sql theo chế độ nào
SELECT SERVERPROPERTY('InstanceName') AS Instance,
       CASE SERVERPROPERTY('IsIntegratedSecurityOnly')   
            WHEN 1 THEN 'Windows Authentication'   
            WHEN 0 THEN 'Mixed Mode'   
       END AS CurrentMode;
```

## Đổi mật khẩu tài khoản sa với công cụ SQL Server Management Studio

Nếu chúng ta đang sử dụng SQL Server và cần thay đổi mật khẩu cho tài khoản SA hoặc một tài khoản khác tương tự, hãy làm theo các bước sau:

**Bước 1**: Mở **SQL Server Management Studio** và đăng nhập vào Instance mà chúng ta cần thay đổi mật khẩu với tài khoản **SA**, có thể đăng nhập với tài khoản **SA** hoặc bất kỳ tài khoản nào có quyền **sysadmin**.

**Bước 2**: Tại cửa sổ **Object Explorer**, chọn **Security** và sau đó chọn **Logins**.

<figure><img src="/files/CqgJZj0lh73cRPaRkIu2" alt=""><figcaption><p>tài khoản sa</p></figcaption></figure>

**Bước 3**: Tìm kiếm tài khoản **SA** trong danh sách các tài khoản đăng nhập và nhấp chuột phải để chọn **Properties**.

**Bước 4**: Tại cửa sổ **Properties** của tài khoản **SA**, chọn mục **General** và nhập mật khẩu mới của bạn vào ô **Password** và **Confirm Password**.

<figure><img src="/files/Z9bG9EaMql7nTIG6PAva" alt=""><figcaption><p>Thiết lập mật khẩu sa</p></figcaption></figure>

**Bước 5**: Để lưu thay đổi, nhấn **OK**.

Sau khi hoàn thành các bước trên, bạn đã thay đổi mật khẩu cho tài khoản SA của mình. Hãy đảm bảo rằng bạn sử dụng mật khẩu an toàn và đáng tin cậy để bảo vệ cơ sở dữ liệu của mình khỏi các mối đe dọa bên ngoài.

## Đổi mật khẩu tài khoản sa với công cụ QueryExpress

Bước 1: Tải công cụ QueryExpress\_OpenConnection.rar trên ftp của DTECH

Công cụ này hỗ trợ điền tham số kết nối SQL SERVER để thực hiện truy vấn. Bạn tải về vào đưa vào thư mục Lib, đổi tên file QueryExpress.exe thành QueryExpress\_old.exe, giải nén file QueryExpress\_OpenConnection vào.

Bước 2: Chạy file QueryExpress.exe mới hiện ra cửa sổ kết nối&#x20;

<figure><img src="/files/tZ3axxyOtjhgJYvjfLZ5" alt=""><figcaption><p>Cửa sổ kết nối SQL</p></figcaption></figure>

<figure><img src="/files/acsywExCDrLSaSSW7cjW" alt=""><figcaption><p>Tham số kết nối sql</p></figcaption></figure>

Bạn chỉ việc điền lại thông tin server SQL, chọn Windows Authentication (xác thực user của windows) nhấn Connect để kết nối vào được bên trong để thực hiện được các lệnh t-sql

Bước 3: Thực hiện copy code t-sql bên dưới , chú ý thay đổi mật khẩu mới sa đúng theo quy định của DTECH để thay đổi mật khẩu lại.

```sql
GO
ALTER LOGIN [sa] WITH DEFAULT_DATABASE=[master]
GO
USE [master]
GO
ALTER LOGIN [sa] WITH PASSWORD=N'MẬT KHẨU MỚI' 
GO
```

Bước 4: Kết nối lại vào phần mềm theo mật khẩu sa vừa thay đổi nếu thành công là xong.

## Đổi mật khẩu tài khoản sa với phần mềm bên thứ 3

Một số phần mềm bên thứ 3 hỗ trợ reset lại mật khẩu sa trong sql server như:

* SQL Server Password Changer 1.9  => [**Tải về tại đây**](https://drive.google.com/file/d/1ljQUCP5emSYdUiaHjYZZpDEtH7RUuNIb/view?usp=sharing)

<figure><img src="/files/rgiEiDjkwAsnCqQt0aUB" alt=""><figcaption></figcaption></figure>

* SysTools SQL Password Recovery 6.0 => [**Tải về tại đây**](https://drive.google.com/file/d/1Ans6xZWvf3WIz_E3oBj-jKeINI_3LzTY/view?usp=sharing)

<figure><img src="/files/WLlMdBiYJDfnan8kueZN" alt=""><figcaption></figcaption></figure>

* Advanced SQL Password Recovery => [**Tải về tại đây**](https://drive.google.com/file/d/1m41CQ0VonBEmwHdFN2VJQLNJdZswr9H-/view?usp=sharing)

<figure><img src="/files/M1t0IGf7jW3EixiulYxB" alt=""><figcaption></figcaption></figure>

## Bảo mật nâng cao tài khoản sa

Nhiều phần mềm khác cài đặt cũng sử dụng SQL SERVER giống như DTECH, thay vì cài đặt instance name sql mới thì dùng luôn của DTECH dẫn tới họ vào có thể đổi mật khẩu tài khoản sa làm phần mềm lỗi kết nối, hoặc vấn đề bảo mật dữ liệu.

### 1.Dùng  SQL SERVER MANAGER STUDIO thì thực hiện như sau

Truy cập vào mục **Security** >> **Login**, Click phải lên tài khoản như Administrator chọn **Properties**, chọn **Disabled** (tắt), nhấn Ok để đồng ý tắt. Lượt thực hiện disabled hết các tài khoản còn lại TRỪ tài khoản sa để sử dụng.

<figure><img src="/files/eLPAG91TdW2mhzcau17i" alt=""><figcaption><p>Dùng Sql server manager studio</p></figcaption></figure>

### 2.Dùng lệnh 1 trong t-sql dưới để thực hiện, trường hợp đó thao tác trên QueryExpress

```sql
--1. all Login Accounts in a SQL Server
SELECT name AS Login_Name, type_desc AS Account_Type
FROM sys.server_principals 
WHERE TYPE IN ('U', 'S', 'G')
and name not like '%##%'
ORDER BY name, type_desc

--2. all SQL Login Accounts only
SELECT name
FROM sys.server_principals 
WHERE TYPE = 'S'
and name not like '%##%'

--3. all Windows Login Accounts only
SELECT name
FROM sys.server_principals 
WHERE TYPE = 'U'

--4. all Windows Group Login Accounts only
SELECT name
FROM sys.server_principals 
WHERE TYPE = 'G'
```

Khi ra danh sách các user login được vào sql rồi thì copy lấy tên user tại cột Login\_name để đưa vào câu lệnh sau thực hiện tắt đi không cho đăng nhập vào. Chú ý thay giá trị \[Domain/username]&#x20;

```sql
USE [master] GO 
ALTER LOGIN [Domain\username] DISABLE GO
```

Dùng QueryExpress đăng nhập bằng chế độ Window Authentication lại, không kết nối được là xong.

## TẠO TÀI KHOẢN TƯƠNG ĐƯƠNG SA

Sử dụng lệnh T-sql sau:

```sql
-- Bước 1: Tạo user login mới tên là: dte, mật khẩu: Dte@123
CREATE LOGIN dte WITH PASSWORD = 'Dte@123';

-- Bước 2: Gán vai trò sysadmin cho login

EXEC sp_addsrvrolemember @loginame = 'dte', @rolename = 'sysadmin';

```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kythuat.dtechvn.com/sql-server/tai-khoan-sa-cua-sql-server.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
