您的位置:首页 > 数据库

用SQL创建数据库登录用户

2010-11-10 22:53 176 查看
用SQL创建数据库登录用户

用户通过用来建立连接权限的登录(身份验证),获得 Microsoft® SQL Server™ 数据库的访问权限。因为 SQL Server 使用 Microsoft® Windows® 2005 身份验证,所以每个 SQL Server 登录必须与一个有效 Windows 帐户相关联。然后,可以为每个基于 Windows 用户或组帐户的 SQL 登录授予连接到 SQL Server 的权限。

注意SQL Server 7.0 和 SQL Server 2000 不再独立于操作系统而管理组。SQL Server 较低版本中的组已被功能更强的角色所替代。但是,您可以在整个 Windows 组级管理 SQL Server 的安全。

如果您拥有 SQL Server 的系统管理员权限,则可以使用以下方法创建和修改 SQL Server 登录:

· 在SQL Server 2005新建查询中创建 SQL Server 登录

· 使用 SQL Server 工作流模板实例化向导创建 SQL Server 登录

当您使用向导从模板中创建工作流应用程序实例时,可以添加 SQL Server 登录。但是,只有当应用程序创建者拥有 SQL Server 系统管理员权限,并且 SQL Server 登录已经具有有效的 Windows 帐户时,此功能才有效。除非服务器管理员也为 modAppOwners 组授予了 SQL Server 系统管理员权限,否则 modAppOwners 成员不能创建 SQL Server 登录。

命名规则

用户名或组名不能与所管理的域或计算机的任何其它用户名或组名相同。它最多可包含 20 个大写或小写字符,但不能包含以下字符:

" / \ [ ] : ; | = , + * ? < >

用户名或组名不能只包含句点 (.) 和空格。

有关 SQL Server 登录的命名规则的详细信息,请参阅“SQL Server 联机丛书”。

SQL创建登录示例:

A. 创建具有主默认数据库的登录 ID
下例为用户 Victoria 创建一个 SQL Server 登录,没有指定默认数据库。

EXEC sp_addlogin 'Victoria', 'B1r12-36'

B. 创建登录 ID 和默认数据库
下例为用户 Albert 创建一个 SQL Server 登录,并指定密码“B1r12-36”以及名为 corporate 的默认数据库。

EXEC sp_addlogin 'Albert', 'B1r12-36', 'corporate'

C.创建使用其它默认语言的登录 ID
下例为用户 Claire Picard 创建一个 SQL Server 登录,密码为“B1r12-36”,默认数据库为 public_db,默认语言为 French。

EXEC sp_addlogin 'Claire Picard', 'B1r12-36', 'public_db', 'french'

D. 创建带有特定 SID 的登录 ID
下例为用户 Michael 创建一个 SQL Server 登录,密码为“B1r12-36”,默认数据库为 pubs,默认语言为 us_english,SID 为 0x0123456789ABCDEF0123456789ABCDEF。

EXEC sp_addlogin 'Michael', 'B1r12-36', 'pubs', 'us_english', 0x0123456789ABCDEF0123456789ABCDEF

E. 创建登录 ID 并且不加密密码
下例在 Server1 上为用户 Margaret 创建了一个密码为“B1r12-36”的 SQL Server 登录,再析取此加密密码,然后使用前面加密的密码将用户登录 Margaret 添加到 Server2,但不对此密码进一步加密。之后,用户 Margaret 即可使用密码“Rose”登录到 Server2。

-- Server1
EXEC sp_addlogin 'Margaret', 'B1r12-36'

--Results
New login created.

-- Extract encrypted password for Margaret
SELECT CONVERT(VARBINARY(256), password)
FROM syslogins
WHERE name = 'Margaret'

--Results
------------------------------------------------------------------
0x0100163A5F026DA00F9FBCF3CB2E75B0C84887F3A87E191F8E0B7A2660F064A52B19590B9DE20D94DC0DFF857EDA

(1 row(s) affected)

-- Server2
EXEC sp_addlogin 'Margaret', 0x0100163A5F026DA00F9FBCF3CB2E75B0C84887F3A87E191F8E0B7A2660F064A52B19590B9DE20D94DC0DFF857EDA,
@encryptopt = 'skip_encryption'

代码

-- Purpose: 常用系统存储过程使用

EXEC sp_databases --列出当前系统中的数据库

EXEC sp_renamedb 'Northwind','Northwind1'--改变数据库名称(单用户访问)

USE stuDB
GO

EXEC sp_tables --当前数据库中查询的对象的列表

EXEC sp_columns stuInfo --返回某个表列的信息

EXEC sp_help stuInfo --查看表stuInfo的信息

EXEC sp_helpconstraint stuInfo --查看表stuInfo的约束

EXEC sp_helpindex stuMarks --查看表stuMarks的索引

EXEC sp_helptext 'view_stuInfo_stuMarks' --查看视图的语句文本

EXEC sp_stored_procedures --返回当前数据库中的存储过程列表
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: