2012-02-11 28 views
8

Có ai vui lòng cho tôi biết cách cấp quyền cho cơ sở dữ liệu trong SQL Azure không?Làm cách nào để đặt quyền cho cơ sở dữ liệu trong Azure xanh?

Khi tôi thực hiện tạo truy vấn bảng, tôi kết thúc với thông báo sau:

CREATE TABLE cho phép từ chối trong cơ sở dữ liệu TestDB

Cảm ơn trước :)

+0

dùng gì bạn đang kết nối với SQL Azure như.? Có phải người dùng có quyền tạo bảng (ví dụ: người dùng quản trị được tạo khi tạo máy chủ SQL Azure) không? – mcollier

Trả lời

0

SQL Azure sử dụng cùng chế độ bảo mật với SQL Server. Có vẻ như bạn sử dụng người dùng không phải dbo để tạo bảng. Tôi nghĩ rằng bạn có thể sử dụng lệnh GRANT nó nhận được sự cho phép thích hợp.

+0

SQL Azure hoạt động hơi khác với SQL Server về mặt bảo mật - sử dụng các vai trò khác nhau cho thông tin đăng nhập và người dùng IIRC. – jamiebarrow

1

Đảm bảo rằng bạn không cố gắng chạy tập lệnh tạo bảng trong cơ sở dữ liệu chính.

6

Lý tưởng nhất là bạn chỉ cần chỉ định các quyền cần thiết cho người dùng. Nếu bạn vừa tạo một người dùng mới mà bạn muốn để có thể làm bất cứ điều gì trong cơ sở dữ liệu mới, bạn có thể chạy lệnh sau bên trong cơ sở dữ liệu sử dụng một người sử dụng máy chủ quản trị:

EXEC sp_addrolemember 'db_owner', 'YourNewUser'; 
3

Hãy nhìn vào những kịch bản .Đây thể không phải là kịch bản chính xác mà bạn đang tìm for.But này sẽ giúp bạn tạo ra các kịch bản mà bạn muốn

STEP1: Ran các kịch bản trên masterdb xanh

CREATE LOGIN mydb_admin 
WITH PASSWORD = 'nnn' 
GO 
CREATE LOGIN mydb_user 
WITH PASSWORD = 'nnnnnnnnn 
GO 

'

Bước 2: Ran kịch bản dưới đây trên thực tế xanh db ví dụ, mydb

CREATE USER mydb_admin FROM LOGIN mydb_admin ; 
EXEC sp_addrolemember 'db_datareader', 'mydb_admin'; 
EXEC sp_addrolemember 'db_datawriter', 'mydb_admin'; 
GRANT CONNECT TO mydb_admin; 
GRANT SELECT TO mydb_admin; 
GRANT EXECUTE ON [dbo].[procDumpRowsInto_De_Common] TO [mydb_admin] AS [dbo] 

CREATE USER mydb_user FROM LOGIN mydb_user; 
EXEC sp_addrolemember 'db_datareader', 'mydb_user'; 
EXEC sp_addrolemember 'db_executor', 'mydb_user'; 
GRANT CONNECT TO mydb_user; 
GRANT SELECT TO mydb_user; 
+0

Vui lòng kiểm tra kỹ định dạng mã của bạn. có vẻ như 'GO bị nhập sai. –

Các vấn đề liên quan