Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Ẩn cơ sở dữ liệu SQL khỏi Management Studio

Sau nhiều giờ cố gắng tìm ra cách tạo tài khoản người dùng chỉ có quyền truy cập vào 1 DB và chỉ có thể xem DB đó. Tôi nghĩ rằng tôi đã tìm ra nó !!!!

  1. Tạo tài khoản người dùng ( đảm bảo tài khoản đó không được ánh xạ tới bất kỳ Cơ sở dữ liệu nào, nếu không bạn sẽ gặp lỗi cuối cùng Msg 15110, Cấp 16, Trạng thái 1 và lưu ý giải pháp được đề xuất )

    USE [master]
    GO
    CREATE LOGIN [us4] 
        WITH PASSWORD=N'123', 
        DEFAULT_DATABASE=[master], 
        CHECK_EXPIRATION=OFF, 
        CHECK_POLICY=OFF
    
  2. Nhấp chuột phải vào phần trên của SQL (Tên SQLSERVER)> Properties> Permissions> Nhấp vào user account và chọn Deny để xem cơ sở dữ liệu.

    use [master]
    GO
    DENY VIEW ANY DATABASE TO [us4]
    
  3. Nhấp chuột phải vào DB, Thuộc tính, Tệp mới được tạo và thay đổi Chủ sở hữu thành tài khoản mới được tạo. ( lưu ý quan trọng :ALTER ROLE [db_owner] ADD MEMBER [us4] không hoạt động )

    USE [dbname]
    GO
    EXEC dbo.sp_changedbowner @loginame = N'us4', @map = false
    

Tại thời điểm này, khi người dùng đăng nhập, anh ta sẽ thấy Master, tempdb và cũng sẽ thấy DB mới mà anh ta là Chủ sở hữu DB..Bạn có thể muốn đi tới Tools>Option và bật tùy chọn ẩn các đối tượng hệ thống để bạn không hiển thị cái chính, tempdb, v.v. Bạn cũng có thể cần SP1 nếu tùy chọn này không hoạt động

Msg 15110, Level 16, State 1, Line 1
The proposed new database owner is already a user or aliased in the database.

giải pháp được đề xuất cho Msg 15110: để giải quyết lỗi trên, chỉ cần xóa người dùng khỏi nút bảo mật cơ sở dữ liệu và thử lại

Hy vọng điều đó sẽ giúp ...

Nikhil



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thoát ký tự thoát không hoạt động - Toán tử THÍCH SQL

  2. MS Access VBA bẫy Lỗi kết nối máy chủ SQL

  3. Trả về giá trị từ SQL Server Chèn lệnh sử dụng c #

  4. Ràng buộc Kiểm tra có thể liên quan đến một bảng khác không?

  5. Xem liệu một Bảng có Ràng buộc DEFAULT trong SQL Server hay không bằng cách sử dụng OBJECTPROPERTY ()