Khi nói đến lược đồ dbo:
- Có phải là một cách thực hành tốt nhất để tránh sử dụng lược đồ dbo khi tạo các đối tượng cơ sở dữ liệu?
- Tại sao lược đồ dbo nên tránh hoặc nên?
- Người dùng cơ sở dữ liệu nào nên sở hữu lược đồ dbo?
Khi nói đến lược đồ dbo:
Câu trả lời:
Nó có thể là một thực tiễn tốt vì khi bạn có người dùng khác sử dụng cơ sở dữ liệu, bạn muốn có thể giới hạn quyền truy cập của họ bằng các lược đồ. Ví dụ trong cơ sở dữ liệu bạn có các bảng sau.
HR.Payhist
HR.Payscale
HR.Jobdesc
IT.username
IT.useraccesslevel
ENG.jobsite
ENG.trainings
Là giám đốc nhân sự, tôi có thể truy cập mọi thứ trong HR
lược đồ, với tư cách là IT
giám đốc tôi có thể thấy tên người dùng và cấp độ truy cập của nhân viên. Bộ Engineering
phận có thể xem các trang web công việc nào đang hoạt động, v.v ... Nếu dbo là lược đồ được thiết lập cho tất cả các bảng, tôi sẽ gặp khó khăn hơn trong việc phân chia dữ liệu của mình và cung cấp vai trò truy cập.
Tôi tin rằng, trong SQL Server là cung cấp một sản phẩm có thể được truy cập và truy vấn bởi các bộ phận khác nhau. Trong thực tế, chỉ có các DBA / DBDev thực sự truy cập vào cơ sở dữ liệu và nó thường chỉ lưu trữ dữ liệu ứng dụng.
Nó cũng giúp với khả năng đọc và quản lý. Lúc đầu, tôi có thể dễ dàng xác định bảng nào chứa dữ liệu nào và cách tách dữ liệu.
Cá nhân tôi thích xác định các lược đồ như là một thực tiễn chung. Ghi nhớ lược đồ là tiếng Hy Lạp cho kế hoạch, có cấu trúc lược đồ được đặt ra giúp bạn lập kế hoạch và xác định dữ liệu.
Tôi nghĩ rằng điều này thực sự phụ thuộc vào sở thích của người dùng vì không có lý do công nghệ thực sự để làm điều này. Trong thực tế, để đơn giản, tôi nói luôn luôn sử dụng dbo trừ khi các yêu cầu bảo mật của bạn quy định khác. Tất nhiên, bạn luôn có thể làm điều đó cho mục đích tổ chức là tốt.
Nếu bất cứ điều gì, nên tránh dbo vì nó là mặc định cho SQL Server, nó cũng không mô tả chút nào. Giống như tất cả các tên mặc định khác, vì nó được biết trước, nó làm cho cuộc sống của hacker trở nên dễ dàng hơn nhiều (mặc dù nếu họ đang cố gắng tìm ra tên lược đồ của bạn thì có lẽ bạn đã bị mắc kẹt).
Nơi tôi làm việc, chúng tôi sử dụng các lược đồ để phân chia cơ sở dữ liệu thành các phần logic và gán quyền cho các lược đồ.
Ví dụ, chúng tôi có thể có một hệ thống kiểm kê với cơ sở dữ liệu. Các bảng chính có thể nằm trong lược đồ inv. Nếu chúng ta nhập bất cứ thứ gì vào cơ sở dữ liệu thì một lược đồ phân tầng sẽ được sử dụng như một phần của quy trình nhập. Nếu chúng tôi có bất kỳ quy trình lưu trữ hệ thống nào mà người dùng không cần truy cập, chúng tôi sẽ đặt chúng vào một lược đồ sp.
Đây không phải là cách thực hành tốt nhất trước đây vì các lược đồ đã bị ẩn trước SQL 2005, mọi thứ được đưa vào lược đồ dbo. Nhóm máy chủ SQL hiển thị nó như một cách thực hành tốt nhất và đã xuất bản một bài viết về nó: Thực tiễn tốt nhất về máy chủ SQL - Thực hiện các lược đồ đối tượng cơ sở dữ liệu
Theo như câu hỏi khác của bạn về người nên sở hữu nó: lược đồ dbo được sở hữu bởi tài khoản người dùng dbo.