Chúng tôi đã thêm người dùng đăng nhập và cơ sở dữ liệu máy chủ ánh xạ Nhóm Windows vào phiên bản SQL 2008 R2 bằng cách sử dụng tập lệnh sau, với các tên được thay đổi để ẩn danh:
USE master
go
CREATE LOGIN [DOMAIN\AppUsers] FROM WINDOWS
WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]
go
USE AppDb
go
CREATE USER [DOMAIN\AppUsers] FOR LOGIN
[DOMAIN\AppUsers]
go
EXEC sp_addrolemember N'db_owner', N'DOMAIN\AppUsers'
go
Khi tài khoản DOMAIN \ User1 đăng nhập vào ứng dụng, User1 truy vấn các bảng trong lược đồ dbo tốt vì User1 là thành viên của DOMAIN \ AppUsers, nhưng ứng dụng này cũng cho phép người dùng tạo bảng. Khi tạo các bảng này mà không chỉ định lược đồ , SQL Server thực hiện như sau:
- Tạo người dùng 'DOMAIN \ User1' trong AppDb sử dụng thông tin đăng nhập 'DOMAIN \ User1' không được liệt kê trong SSMS \ Security \ Đăng nhập chẳng hạn.
- Tạo lược đồ 'DOMAIN \ User1' trong AppDb.
- Tạo các bảng đó bằng cách sử dụng trong lược đồ 'DOMAIN \ User1' mới.
Tôi hoàn toàn bị cản trở bởi những kết quả này. Đây là câu hỏi của tôi:
- Tôi hy vọng việc tạo bảng sẽ thất bại thay vì tạo các đối tượng bổ sung. Ai đó có thể chỉ cho tôi phần của Sách trực tuyến giải thích điều này không?
- Tại sao máy chủ không tạo lược đồ 'DOMAIN \ AppUsers' và thêm các bảng mới vào lược đồ đó nếu nó sẽ thêm các lược đồ?
- Ngoài ra, làm thế nào để cơ sở dữ liệu sử dụng thông tin đăng nhập không được hiển thị trong SSMS \ Security \ Logins?
- Nhìn vào người dùng 'DOMAIN \ User1' trong SSMS \ Cơ sở dữ liệu \ AppDb \ Security \ Users, biểu tượng người dùng có một mũi tên nhỏ màu đỏ chỉ xuống. Điều đó nghĩa là gì?
Chúng tôi mới bắt đầu sử dụng Xác thực Windows trong một tổ chức ưa thích Xác thực SQL vì đơn giản, vì vậy tôi chắc chắn rằng câu hỏi của tôi xuất phát từ việc không biết gì về sự khác biệt. Mã này đã được viết từ lâu trước khi chúng tôi xem xét sử dụng Windows xác thực, vì vậy tôi chắc chắn rằng chúng tôi cần cải thiện hiểu biết của mình về việc tạo các lược đồ mới khi đăng nhập bằng Windows xác thực như bất kỳ ai khác ngoài chủ sở hữu cơ sở dữ liệu.
Trong trường hợp bạn không thể biết, tôi là người thúc đẩy việc sử dụng Xác thực Windows qua Xác thực SQL. Nếu chúng ta không hiểu rõ về điều này, chúng ta sẽ quay trở lại Xác thực SQL.