2012-02-07 79 views
14

Vừa mới nâng cấp lên SQL Server 2008 R2 Express. Khi tôi cố gắng để tạo ra một cơ sở dữ liệu sau khi đăng nhập sử dụng Windows Authentication với roger.moore id của tôi, tôi nhận được lỗi này:quyền truy cập SQL Server 2008 R2 Express - không thể tạo cơ sở dữ liệu hoặc sửa đổi người dùng

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
CREATE DATABASE permission denied in database 'master'. RESTORE HEADERONLY is terminating abnormally Error 262

Nếu tôi cố gắng thêm vai trò sysadmin để roger.moore, đây là lỗi tôi nhận được :

Add member failed for ServerRole 'sysadmin'. (Microsoft.SqlServer.Smo)
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
User does not have permission to perform this action Error 15247

Nếu tôi cố gắng thêm vai trò này cho người dùng của tôi với T-SQL, sử dụng lệnh này,

EXEC sp_addsrvrolemember 'ziffenergy\roger.moore', 'sysadmin'; 
GO 

đây là lỗi tôi nhận được:

Msg 15247, Level 16, State 1, Procedure sp_addsrvrolemember, Line 29
User does not have permission to perform this action.

Có ai có đề xuất nào không? Có vẻ như tôi không thể làm gì với cơ sở dữ liệu trên máy cục bộ. Xin lưu ý rằng tôi là quản trị viên trên máy trạm Windows 7 tôi đang sử dụng, và nếu tôi cố gắng tạo hoặc sửa đổi cơ sở dữ liệu và/hoặc người dùng trên máy chủ cơ sở dữ liệu CNTT của chúng tôi bằng cách sử dụng SQL Server Management Studio, tôi có thể làm điều đó mà không có vấn đề gì.

Trả lời

12

Bạn có thể là quản trị viên trên máy trạm, nhưng điều đó có nghĩa là không có gì với SQL Server. Đăng nhập của bạn phải là thành viên của vai trò sysadmin để thực hiện các hành động được đề cập. Theo mặc định, nhóm quản trị cục bộ không còn được thêm vào vai trò sysadmin trong SQL 2008 R2. Bạn sẽ cần phải đăng nhập với một cái gì đó khác (sa ví dụ) để cấp cho mình các điều khoản.

+0

Cảm ơn bạn đã phản hồi. Có, tôi đã cố đăng nhập bằng sa; Tuy nhiên, khi tôi cố gắng để đặt mật khẩu cho sa, tôi nhận được thông báo lỗi này: "Thay đổi mật khẩu không thành công cho đăng nhập '. (Microsoft.SqlServer.Smo) Một ngoại lệ xảy ra trong khi thực hiện một lệnh Transact-SQL hoặc lô. .SqlServer.ConnectionInfo) Không thể thay đổi đăng nhập 'sa', bởi vì nó không tồn tại hoặc bạn không có quyền. (Microsoft SQL Server, Lỗi: 15151) "Bất kỳ ý tưởng? – Roger

+0

Đó là cùng một vấn đề. Bạn sẽ không thể đặt mật khẩu vì tài khoản của bạn không có các quyền cần thiết trong cá thể SQL của bạn. Nếu bạn không biết chi tiết đăng nhập nếu một tài khoản có đặc quyền sysadmin (hoặc một số đặc quyền chuyên biệt khác không chắc chắn trong trường hợp của bạn) thì bạn sẽ cần phải nhận được nó từ một người nào đó. – squillman

+1

Nhưng tôi là người đã cài đặt phần mềm SQL Server 2008 R2 trên máy trạm của tôi, vì vậy tôi không nên có các quyền cần thiết? – Roger

37

Đến muộn với bữa tiệc, nhưng tôi thấy điều này fantastic step-by-step guide để kiểm soát bản sao SQLExpress của bạn nếu bạn không có mật khẩu sa. Tôi đã sử dụng quy trình này để không chỉ đặt lại mật khẩu sa, nhưng tôi cũng đã thêm tài khoản miền của mình vào tất cả các vai trò máy chủ có sẵn. Bây giờ tôi có thể tạo cơ sở dữ liệu, thay đổi thông tin đăng nhập, thực hiện thao tác hàng loạt, sao lưu/khôi phục, v.v. bằng cách sử dụng thông tin đăng nhập bình thường của tôi.

Để tóm tắt, bạn sử dụng Trình quản lý cấu hình SQL Server để đưa cá thể của bạn vào chế độ một người dùng. Điều này nâng bạn lên sysadmin khi bạn kết nối, cho phép bạn thiết lập mọi thứ.

Chỉnh sửa: Tôi đã sao chép các bước bên dưới - kudo đến tác giả gốc của liên kết ở trên.

  1. Đăng nhập vào máy tính như một quản trị (hoặc Bất kỳ người dùng với quyền quản trị)
  2. Open "SQL Server Configuration Manager"
  3. Bấm "SQL Server Dịch vụ" trên khung bên trái
  4. Stop " SQL Server "và" SQL Server Agent "dụ trên ngăn bên phải nếu nó đang chạy
  5. Chạy SQL Express ở chế độ người dùng đơn bằng cách bấm chuột phải vào" SQL Server "dụ -> Thuộc tính (trên ngăn bên phải của SQL Server Quản lý cấu hình).
  6. Nhấp vào Tab nâng cao và tìm "Thông số khởi động". Thay đổi "Tham số khởi động" để giá trị mới sẽ là -m; (không có <>) ví dụ: từ: -dc: \ Program Files \ Microsoft SQL ............. (đến cuối chuỗi) tới: -m; -dc: \ Tệp chương trình \ Microsoft SQL .............(đến cuối chuỗi)
  7. Khởi động SQL Server
  8. Mở MS SQL Server Management Studio và đăng nhập vào máy chủ SQL bằng "Xác thực Windows" làm chế độ xác thực. Vì chúng ta có SQL Server đang chạy trên một chế độ người dùng duy nhất, và bạn đã đăng nhập vào máy tính với quyền Administrator, bạn sẽ có quyền truy cập "sysadmin" vào cơ sở dữ liệu.
  9. Mở rộng "Security" nút trên MS SQL Server Management Studio trên khung bên trái
  10. Mở rộng "Logins" nút
  11. Nhấp đúp vào 'sa' đăng nhập
  12. Thay đổi mật khẩu bằng cách nhập một mật khẩu phức tạp nếu "Thực thi chính sách mật khẩu" được chọn, nếu không, chỉ cần nhập bất kỳ mật khẩu nào.
  13. Đảm bảo rằng tài khoản "sa" được "bật" bằng cách nhấp vào Trạng thái ở ngăn bên trái. Đặt hộp radio dưới "Đăng nhập" thành "Đã bật"
  14. Nhấp "OK"
  15. Quay lại cửa sổ chính của MS SQL Server Management Studio, xác minh xem Xác thực máy chủ SQL có được sử dụng hay không bằng cách nhấp chuột phải vào nút trên cùng trong ngăn bên trái (thường là ". \ SQLEXPRESS (SQL Server)") và chọn thuộc tính.
  16. Bấm "Security" ở khung bên trái và đảm bảo rằng "SQL Server và chế độ Windows Authentication" là một trong những lựa chọn dưới "Server authentication"
  17. Nhấp "OK"
  18. Ngắt kết nối từ MS SQL Server Management Studio
  19. Mở "Sql Server Configuration Manager" một lần nữa và dừng phiên bản SQL Server.
  20. Nhấp chuột phải vào cá thể SQL Server và nhấp vào tab "Nâng cao". Một lần nữa tìm "Tham số khởi động" và xóa "-m;" mà bạn đã thêm trước đó.
  21. Nhấp "OK" và bắt đầu SQL Server Instance lại
  22. Bây giờ bạn sẽ có thể đăng nhập vào là "sa" bằng cách sử dụng mật khẩu mới mà bạn đã thiết lập ở bước 12.
+0

câu trả lời này làm việc hoàn hảo cho tôi. cảm ơn bạn! – Francisc0

+0

Cảm ơn bạn rất nhiều !!! – JATMON

+1

Hoạt động với Sql Server 2008 R2 Enterprise. Cảm ơn! – Edo

2

Trong SSMS 2012 , bạn sẽ phải sử dụng:

Để bật chế độ một người dùng, trong thuộc tính cá thể SQL, KHÔNG chuyển đến thẻ "Nâng cao", đã có thẻ "Tham số khởi động".

  1. Thêm "-m;" thành các tham số;
  2. Khởi động lại dịch vụ và đăng nhập phiên bản SQL này bằng cách sử dụng xác thực cửa sổ;
  3. Các bước còn lại giống như trên. Thay đổi quyền truy cập tài khoản người dùng cửa sổ của bạn trong bảo mật hoặc đặt lại mật khẩu tài khoản SA.
  4. Cuối cùng, xóa thông số "-m" khỏi "thông số khởi động";
0

Tôi có 2 tài khoản trên máy tính của mình và tôi đã gặp sự cố này với một trong số chúng. Tôi không muốn sử dụng tài khoản sa, tôi muốn sử dụng đăng nhập Windows. Hiện chưa rõ ràng với tôi rằng tôi cần phải chỉ đơn giản là đăng nhập vào tài khoản khác mà tôi dùng để cài đặt SQL Server, và thêm các điều khoản cho tài khoản mới từ đó

(SSMS > Security > Logins > Add a login there)

Cách dễ dàng để có được đầy đủ tên miền bạn cần phải thêm vào đó mở cmd echo mỗi cái.

echo %userdomain%\%username% 

Thêm thông tin đăng nhập cho người dùng đó và cấp cho tất cả các giấy phép cho db chính và các cơ sở dữ liệu khác mà bạn muốn. Khi tôi nói "tất cả các quyền" đảm bảo KHÔNG kiểm tra bất kỳ quyền "từ chối" nào vì điều đó sẽ làm ngược lại.

1

Tôi đã làm theo các bước trong câu trả lời của killthrush và điều ngạc nhiên của tôi là nó không hoạt động. Đăng nhập vào như là tôi có thể thấy người dùng tên miền Windows của tôi và đã làm cho họ một sysadmin, nhưng khi tôi cố gắng đăng nhập với Windows auth tôi không thể nhìn thấy đăng nhập của tôi dưới đăng nhập, không thể tạo cơ sở dữ liệu, vv Sau đó nó đánh tôi. Đăng nhập đó có thể được gắn với một tài khoản miền khác có cùng tên (với một số loại ID nội bộ/ẩn không đúng). Tôi đã rời khỏi tổ chức này một thời gian trước và sau đó trở lại vài tháng sau đó. Thay vì kích hoạt lại tài khoản cũ của tôi (mà họ có thể đã xóa), họ đã tạo một tài khoản mới có cùng tên miền \ tên người dùng và một ID nội bộ mới. Sử dụng sa tôi đã xóa thông tin đăng nhập cũ của mình, thêm lại nó với cùng tên và thêm sysadmin. Tôi đã đăng nhập lại với Windows Auth và mọi thứ có vẻ như nó cần. Bây giờ tôi có thể nhìn thấy thông tin đăng nhập của tôi (và những người khác) và có thể làm bất cứ điều gì tôi cần làm như một sysadmin bằng cách sử dụng đăng nhập Windows auth của tôi.

+0

Điểm tốt về tài khoản miền - có thể là một SID khác bên dưới mui xe. Để xác minh loại điều này, người ta có thể sử dụng PowerShell mà không có quá nhiều đau đớn: http://windowsitpro.com/windows-server/find-sid-account-using-powershell – killthrush

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