[How To] Giải pháp cho người không thích SQL Server Management Studio

MSSQL Server Management Studio là công cụ mà ai cũng biết. Nó được đính kèm khi cài đặt SQL Server trong hầu hết các phiên bản. Dĩ nhiên, nếu không thích công cụ này thì vẫn có tùy chọn để loại bỏ khi cài đặt.

Với SQL Server 2008 Express, bạn có thể tải về mà không đính kèm công cụ này tại đây. Dung lượng rất nhẹ, chỉ chứa Database Engine :).

Lưu ý, có 3 lựa chọn:
SQLEXPR_x64_ENU.exe: chỉ sử dụng gói này để cài đặt trên HĐH 64-bit.

SQLEXPR_x86_ENU.exe: gói này để cài đặt SQL Express 32bit trên HĐH 64-bit trong môi trường WoW.
SQLEXPR32_x86_ENU.exe: sử dụng gói này để cài đặt trên HĐH 32-bit.

Vậy khi cài đặt xong thì làm thế nào để sử dụng? Dĩ nhiên giải pháp ở đây là sử dụng một công cụ khác thay thế cho SQL Management Studio, đơn cử một công cụ đó là: Navicat của PremiumSoft (trang chủ).
Sử dụng khá đơn giản và nhẹ nhàng :).

Hiện Navicat có 6 phiên bản dành cho 6 hệ quản trị CSDL. Mình sẽ chọn “Navicat for SQL Server”; tuy nhiên, tham lam một chút bạn có thể cài hẳn bản Premium 6 trong 1 và đằng nào cũng phải trả phí hoặc cr* tùy ý.


Nhưng đảm bảo thế nào khi bạn sử dụng cũng sẽ gặp trục trặc :D, đó là sẽ không truy vập được vào tài khoản [sa] (đa số các LTV thích xài account này).
Khi cài đặt SQL, nếu bạn không đặt password cho sa và kích hoạt chế độ Mixed Mode (SQL Server authentication and Windows authentication) thì có lẽ bạn phải đọc tiếp phần bên dưới :).


Có 3 cách có thể giải quyết vấn đề này:

1. Nếu có sẵn SQL Management Studio, bạn có thể dễ dàng đặt password và kích hoạt chế độ Mixed Mode để có thể truy vập vào sa. Bằng cách dùng quyền Windows authencation để giải quyết.
2. Sử dụng Navicat và tạo kết nối sử dụng quyền Windows authentication và ta enable tài khoản sa ở phần User > Login.
3. Ở hai cách trên, có thể dễ dàng thao tác thông qua giao diện đồ họa. Còn thích chơi command line (CLI) thì cũng sẵn sàng chiều ý. Bên dưới sẽ hướng dẫn cách kích hoạt sa và Mixed Mode :).

Trọng tâm bài viết là chỗ này đây. Từng bước như sau (nhớ là start dịch vụ MSSQLServer):

Mở command line:

– Truy cập SQL với quyền Windows, nhập lệnh sau:

sqlcmd -S <server name>

Ví dụ, server name của mình là CERN, nhập : sqlcmd -S CERN
Đăng nhập lệnh thành công, màn hình hiển thị
1>
tiếp tục…

– Enable tài khoản sa bằng 2 dòng lệnh sau:

ALTER LOGIN sa ENABLE;
GO

Thực thi không lỗi là kích hoạt xong, bạn có thể đặt password cho sa bằng lệnh:

ALTER LOGIN sa WITH PASSWORD = 'daylapasswordcuaban';
GO
EXIT

– Kích hoạt chế độ Mixed Mode (SQL Server authentication and Windows authentication):
Thay đổi giá trị LoginMode thành 2 trong registry tại đường dẫn:

HKEY_LOCAL_MACHINE\
SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQLServer

Lưu ý: đường dẫn trên có thể khác bắt đầu từ chỗ \MSSQL10_50.SQLEXPRESS\…
Vì mình xài SQL Express 2008, đã đặt named instance khi cài đặt là SQLExpress nên đường dẫn như trên. Ăn thua ở chỗ bạn phải hiểu named instance trong SQL là gì, bạn đang chạy SQL trên instance nào thì chỉnh sửa LoginMode của instance đó cho phù hợp.

Bạn có thể sửa giá trị LoginMode thành 2 bằng cmd như sau (thực thi với quyền administrator):

REG ADD "HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQLSERVER" /v LoginMode /t REG_DWORD /d 2

Cuối cùng bạn restart dịch vụ MSSQLServer là xong. (Nhớ là restart lại)


Bonus thêm vài thao tác SQL bằng cách dùng sqlcmd.exe

1. Attach database bằng 1 trong 2 lệnh sau:

CREATE DATABASE [database_name] ON
    (FILENAME = N'Đường dẫn tới tập tin .mdf'),
    (FILENAME = N'Đường dẫn tới tập tin .ldf')
FOR ATTACH;
GO

hoặc, dùng store procedure:

EXEC sp_attach_db @dbname = N'Tên_database',
    @filename1 = N'Đường_dẫn_tới_file_mdf',
    @filename2 = N'Đường_dẫn_tới_file_ldf'

Có thể viết gọn như sau, ví dụ:
EXEC sp_attach_db N'Tên_database', N'Đường_dẫn_tới_file_mdf', N'Đường_dẫn_tới_file_ldf'

2. Detach database:

EXEC sp_detach_db N'Tên_database'


Hãy tham khảo thêm:
Các phương pháp kết nối đến Database Engine bằng sqlcmd.exe

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s