Có cách nào để ngăn người dùng truy cập vào SQL Server Management Studio để họ không thể chỉnh sửa hàng bảng theo cách thủ công không? Họ vẫn cần truy cập vào các bảng bằng cách chạy ứng dụng của tôi.Làm thế nào để vô hiệu hóa SQL Server Management Studio cho người dùng
Trả lời
Bạn KHÔNG cần phải lo lắng về việc họ có quyền truy cập công cụ. Chỉ cần đảm bảo rằng họ không biết bất kỳ thông tin đăng nhập SQL nào cho các Cơ sở dữ liệu cụ thể có quyền đọc/ghi, nếu có, hãy thay đổi mật khẩu. Nếu họ có quyền truy cập vào DB thông qua Xác thực Windows, hãy đảm bảo rằng họ đang ở trong vai trò datareader. Bạn có thể sử dụng các vai trò để quản lý những gì người dùng có thể thực hiện trong SQL.
Tôi cần kết nối với cơ sở dữ liệu và thực hiện một số nội dung nhưng chỉ với một ứng dụng nội bộ. Không phải với quản lý. –
Tôi khuyên bạn nên khóa cơ sở dữ liệu và cung cấp quyền thích hợp chỉ đọc (hoặc khác) cho người dùng. Bằng cách đó người dùng vẫn có thể sử dụng studio quản lý để chạy các truy vấn chọn lọc và như vậy.
Nếu bạn không muốn người dùng có bất kỳ quyền nào, bạn cũng có thể làm điều đó.
Nếu ứng dụng của bạn chỉ sử dụng thủ tục được lưu trữ để sửa đổi dữ liệu, bạn có thể cấp cho người dùng cuối quyền truy cập để chạy procs được lưu trữ, nhưng từ chối họ truy cập để sửa đổi bảng.
- Đừng cho họ biết thông tin đăng nhập cơ sở dữ liệu là gì.
- Nếu bạn không thể hạn chế đăng nhập, hãy sử dụng các thủ tục được lưu trữ dành riêng cho các bản cập nhật và vô hiệu hóa mọi quyền CREATE, DELETE, INSERT hoặc UPDATE cho người dùng đó.
An Application Role sẽ cho phép bạn bảo mật đối tượng cơ sở dữ liệu vào ứng dụng của bạn thay vì người dùng đã đăng nhập.
Tôi đồng ý với Jon Erickson như một quy luật chung
- tôi không cho phép bất kỳ người dùng truy cập vào các bảng, nhưng chỉ cho phép truy cập thông qua lưu trữ procs
- không cho phép người dùng nói chung chiếm quyền truy cập vào procs lưu trữ, nhưng chỉ tài khoản mà ứng dụng của bạn chạy dưới (cho dù đó là thông tin đăng nhập hoặc đăng nhập SQL tích hợp)
Sử dụng tốt vai trò Cơ sở dữ liệu, nếu người dùng chỉ có quyền truy cập SELECT (đọc) gán vai trò db_datareader. Ngay cả khi họ đăng nhập bằng SSMS, họ sẽ chỉ có thể thực hiện các câu lệnh SELECT.
Bạn có thể sử dụng lệnh DENY VIEW ANY DATABASE cho (các) người dùng cụ thể. Đây là một tính năng mới có sẵn trong SQL Server 2008.
Nó ngăn người dùng nhìn thấy danh mục hệ thống (sys.databases, sys.sysdatabases, vv) và do đó làm cho DB vô hình với chúng trong SQL Management Studio (SSMS)).
Chạy lệnh này từ cơ sở dữ liệu Master:
DENY VIEW ANY DATABASE TO 'loginName'
Người dùng vẫn có thể truy cập vào cơ sở dữ liệu thông qua ứng dụng của bạn. Tuy nhiên, nếu họ đăng nhập thông qua SSMS, cơ sở dữ liệu của bạn sẽ không hiển thị trong danh sách cơ sở dữ liệu và nếu họ mở cửa sổ truy vấn, cơ sở dữ liệu của bạn sẽ không xuất hiện trong trình đơn thả xuống.
Tuy nhiên, đây không phải là bằng chứng lừa đảo. Nếu người dùng đủ thông minh để chạy Lệnh Truy vấn:
USE <YourDatabaseName>
Sau đó, họ sẽ thấy cơ sở dữ liệu trong Trình phân tích Truy vấn.
Vì giải pháp này đang đưa bạn 90% ở đó, tôi sẽ cung cấp cho cơ sở dữ liệu một số tên tối nghĩa không cho người dùng biết tên của cơ sở dữ liệu.
Nếu bạn muốn DOWNVOTE, đó là tốt, nhưng được trưởng thành và lịch sự, đủ để lại một bình luận là tại sao bạn nghĩ rằng tôi sai. –
Nó không nói rằng họ cần phải có * chỉ đọc * truy cập thông qua ứng dụng của họ, nó nói rằng ông không muốn họ có thể tự chỉnh sửa các bảng thông qua SSMS –
Nếu ứng dụng của bạn đang chạy dưới dạng tài khoản dịch vụ/người dùng thì chỉ tài khoản đó yêu cầu quyền truy cập vào cơ sở dữ liệu. Tài khoản của người dùng cá nhân không yêu cầu bất kỳ quyền truy cập nào vào cơ sở dữ liệu và do đó họ thậm chí sẽ không có quyền truy cập đọc. Ứng dụng của bạn sẽ là cổng vào dữ liệu.
Nếu người dùng đang chạy ứng dụng trong tài khoản người dùng của họ thì cấp cho họ quyền chỉ đọc. Bạn có thể chỉ cần thêm chúng vào vai trò db_datareader.
Hy vọng điều này sẽ hữu ích!
Bạn có thể từ chối quyền truy cập của người dùng vào tệp thi hành ssms.exe, đồng thời cấp quyền cho người dùng/quản trị viên có liên quan.
Bạn có thể sử dụng trình kích hoạt.
CREATE TRIGGER [TR_LOGON_APP]
ON ALL SERVER
FOR LOGON
AS
BEGIN
DECLARE @program_name nvarchar(128)
DECLARE @host_name nvarchar(128)
SELECT @program_name = program_name,
@host_name = host_name
FROM sys.dm_exec_sessions AS c
WHERE c.session_id = @@spid
IF ORIGINAL_LOGIN() IN('YOUR_APP_LOGIN_NAME')
AND @program_name LIKE '%Management%Studio%'
BEGIN
RAISERROR('This login is for application use only.',16,1)
ROLLBACK;
END
END;
Điều này có vẻ là câu trả lời tốt nhất ở đây mà trực tiếp địa chỉ câu hỏi của OP. – Sturgus
- 1. Bấm chuột phải vào bảng thay đổi bị vô hiệu hóa trong SQL Server Management Studio
- 2. Macro trong SQL Server Management Studio
- 3. SQL Server Management Studio Express và MySQL?
- 4. Mất IntelliSense trong SQL Server Management Studio
- 5. Thả bảng trong Sql Server bằng Sql Server Management Studio
- 6. Intellisense cho JOINs trong SQL Server Management Studio
- 7. SQL Server 2008 Management Studio: làm thế nào để tắt lời nhắc SAVE
- 8. Làm thế nào để vô hiệu hóa tương tác người dùng trên MKMapView?
- 9. Làm thế nào để cài đặt SQL Server Management Studio 2012 (SSMS) Express?
- 10. báo cáo Format SQL trong SQL Server Management Studio 2008
- 11. Làm thế nào để vô hiệu hóa OUTFILE và INFILE?
- 12. Cách nhận "quyền quản trị" trong SQL Server Management Studio?
- 13. Làm thế nào để sử dụng SQL Server Management studio - "Thực hiện thủ tục lưu trữ" cho các loại bảng do người dùng xác định?
- 14. SQL Server Management Studio - Phím tắt để nhập ngày?
- 15. Làm cách nào để có được SQL Server Management Studio ngừng xử lý lỗi?
- 16. Làm cách nào để bật phạm vi giao dịch tự động trên SQL Server Management Studio?
- 17. Phím tắt để đóng tab trong SQL Server Management Studio?
- 18. Kiểm thử đơn vị trong SQL Server Management Studio
- 19. Vô hiệu hóa cookie người dùng ẩn danh với Django
- 20. Làm thế nào để vô hiệu hóa PerfWatson trong VS2012?
- 21. Cách ghép từ trong SQL Server Management Studio
- 22. Làm thế nào vô hiệu hóa RequiredFieldValidator trong script
- 23. Dừng SQL Server Management Studio thêm ANSI_NULLS và QUOTED_IDENTIFIER
- 24. Làm thế nào để làm cho SQL Management Studio thấy bảng mới?
- 25. Làm thế nào để vô hiệu hóa Tomcat trang chủ
- 26. Làm cách nào để tự động làm mới bộ nhớ cache intellisense của SQL Server Management Studio?
- 27. "Yêu thích" hoặc "macro" trong SQL Server Management studio?
- 28. Quản trị Django - Vô hiệu hóa xóa người dùng
- 29. Làm cách nào để vô hiệu hóa sắp xếp người dùng cuối của XtraTreeList?
- 30. làm cách nào để tạo khóa tổng hợp với SQL Server Management Studio?
là DB trên cùng một máy? –