gì được bạn biết chính xác muốn kiểm tra xem có đăng nhập hay sử dụng? thông tin đăng nhập được tạo ở cấp độ máy chủ và người dùng được tạo ở cấp cơ sở dữ liệu để đăng nhập là duy nhất trong máy chủ
cũng là một người dùng được tạo dựa trên thông tin đăng nhập, người dùng không đăng nhập là người dùng mồ côi và không hữu ích không thể thực hiện đăng nhập máy chủ sql mà không cần đăng nhập
lẽ u cần cái này kiểm tra
để đăng nhập
select 'X' from master.dbo.syslogins where loginname=<username>
truy vấn trở lại 'X' trên nếu đăng nhập tồn tại khác lại vô
sau đó tạo ra một đăng nhập
CREATE LOGIN <username> with PASSWORD=<password>
điều này tạo ra một đăng nhập trong máy chủ sql.nhưng nó chỉ chấp nhận mật khẩu mạnh
tạo một người dùng trong mỗi cơ sở dữ liệu bạn muốn để đăng nhập như
CREATE USER <username> for login <username>
assign thực hiện quyền sử dụng
GRANT EXECUTE TO <username>
Bạn phải có quyền quản trị hệ thống hay nói 'sa 'cho ngắn
bạn có thể viết thủ tục sql cho điều đó trên cơ sở dữ liệu
create proc createuser
(
@username varchar(50),
@password varchar(50)
)
as
begin
if not exists(select 'X' from master.dbo.syslogins where [email protected])
begin
if not exists(select 'X' from sysusers where [email protected])
begin
exec('CREATE LOGIN '[email protected]+' WITH PASSWORD='''[email protected]+'''')
exec('CREATE USER '[email protected]+' FOR LOGIN '[email protected])
exec('GRANT EXECUTE TO '[email protected])
end
end
end
Phiên bản nào của SQL Server? – pjp
Đây là một câu hỏi quan trọng, nhưng như được diễn đạt, dường như nó bỏ lỡ một sự khác biệt quan trọng: người dùng so với đăng nhập. Tiềm năng trùng lặp mà Jon liên quan đến thực sự có vẻ là về người dùng. Câu hỏi này cho biết "người dùng" trong tiêu đề, nhưng đề cập đến thông tin đăng nhập trong mã câu hỏi và trong câu trả lời được chấp nhận. Tôi đã chỉnh sửa tiêu đề và câu hỏi tương ứng. – LarsH
Chỉ cần thêm vào nhận xét của @LarsH, ** thông tin đăng nhập ** được liên kết với một cá thể máy chủ SQL và ** người dùng ** được liên kết với một cơ sở dữ liệu cụ thể. Người dùng cơ sở dữ liệu có thể được tạo từ đăng nhập máy chủ, do đó họ có quyền truy cập vào một cơ sở dữ liệu cụ thể. Xem [bài viết tuyệt vời này] (http://www.sqlservercentral.com/articles/Stairway+Series/109975/) và trên thực tế toàn bộ chuỗi là một phần của (Stariway to SQL Server Security) – DaveBoltman