E. 创建登录 ID 并且不加密密码 下例在 Server1 上为用户 Margaret 创建了一个密码为"Rose"的 SQL Server 登录,再析取此加密密码,然后使用前面加密的密码将用户登录 Margaret 添加到 Server2,但不对此密码进一步加密。之后,用户 Margaret 即可使用密码"Rose"登录到 Server2。
-- Server1 EXEC sp_addlogin Margaret, Rose
--Results New login created.
-- Extract encrypted password for Margaret SELECT CONVERT(VARBINARY(32), password) FROM syslogins WHERE name = 'Margaret'
下面的示例将名为 Managers 的新角色添加到当前数据库中。
EXEC sp_addrole 'Managers'
示例
A. 授予语句权限
下面的示例给用户 Mary 和 John 以及 Windows NT 组 Corporate\BobJ 授予多个语句权限。
GRANT CREATE DATABASE, CREATE TABLE
TO Mary, John, [Corporate\BobJ]
B. 在权限层次中授予对象权限
下例显示权限的优先顺序。首先,给 public 角色授予 SELECT 权限。然后,将特定的权限授予用户 Mary、John 和 Tom。于是这些用户就有了对 authors 表的所有权限。
USE pubs
GO
GRANT SELECT
ON authors
TO public
GO
GRANT INSERT, UPDATE, DELETE
ON authors
TO Mary, John, Tom
GO
C. 给 SQL Server 角色授予权限
下面的示例将 CREATE TABLE 权限授予 Accounting 角色的所有成员。
GRANT CREATE TABLE TO Accounting
D. 用 AS 选项授予权限
用户 Jean 拥有表 Plan_Data。Jean 将表 Plan_Data 的 SELECT 权限授予 Accounting 角色(指定 WITH GRANT OPTION 子句)。用户 Jill 是 Accounting 的成员,他要将表 Plan_Data 上的 SELECT 权限授予用户 Jack,Jack 不是 Accounting 的成员。
因为对表 Plan_Data 用 GRANT 语句授予其他用户 SELECT 权限的权限是授予 Accounting 角色而不是显式地授予 Jill,不能因为已授予 Accounting 角色中成员该权限,而使 Jill 能够授予表的权限。Jill 必须用 AS 子句来获得 Accounting 角色的授予权限。
/* User Jean */
GRANT SELECT ON Plan_Data TO Accounting WITH GRANT OPTION
/* User Jill */
GRANT SELECT ON Plan_Data TO Jack AS Accounting
Top3 楼happydreamer(www.sz.js.cn,www.gyxk.com)回复于 2003-01-02 08:55:50 得分 0 sp_addlogin
创建新的 Microsoft® SQL Server™ 登录,使用户得以连接使用 SQL Server 身份验证的 SQL Server 实例
示例
A. 创建没有密码和主默认数据库的登录 ID
下面的示例为用户 Victoria 创建一个 SQL Server 登录名,没有指定密码或默认数据库。
EXEC sp_addlogin 'Victoria'
B. 创建登录 ID 和默认数据库
此示例为用户 Albert 创建一个 SQL Server 登录,并指定密码 food 以及名为 corporate 的默认数据库。
EXEC sp_addlogin 'Albert', 'food', 'corporate'
C.创建使用其它默认语言的登录 ID
下面的示例为用户 Claire Picard 创建一个 SQL Server 登录名,密码为"caniche",默认数据库为 public_db,默认语言为 French。
EXEC sp_addlogin 'Claire Picard', 'caniche', 'public_db', 'french'
D. 创建带有特定 SID 的登录 ID
下面的示例为用户 Michael 创建一个 SQL Server 登录名,密码为"chocolate",默认数据库为 pubs,默认语言为 us_english,SID 为 0x0123456789ABCDEF0123456789ABCDEF。
EXEC sp_addlogin 'Michael', 'chocolate', 'pubs', 'us_english', 0x0123456789ABCDEF0123456789ABCDEF
E. 创建登录 ID 并且不加密密码
下例在 Server1 上为用户 Margaret 创建了一个密码为"Rose"的 SQL Server 登录,再析取此加密密码,然后使用前面加密的密码将用户登录 Margaret 添加到 Server2,但不对此密码进一步加密。之后,用户 Margaret 即可使用密码"Rose"登录到 Server2。
-- Server1
EXEC sp_addlogin Margaret, Rose
--Results
New login created.
-- Extract encrypted password for Margaret
SELECT CONVERT(VARBINARY(32), password)
FROM syslogins
WHERE name = 'Margaret'
--Results
------------------------------------------------------------------
0x2131214A212B57304F5A552A3D513453
(1 row(s) affected)
-- Server2
EXEC sp_addlogin 'Margaret', 0x2131214A212B57304F5A552A3D513453,
@encryptopt = 'skip_encryption'
示例在数据库pubs中创建一个拥有表jobs的所有权限、拥有表titles的SELECT权限的角色r_test
随后创建了一个登录l_test,然后在数据库pubs中为登录l_test创建了用户账户u_test
同时将用户账户u_test添加到角色r_test中,使其通过权限继承获取了与角色r_test一样的权限
最后使用DENY语句拒绝了用户账户u_test对表titles的SELECT权限。
经过这样的处理,使用l_test登录SQL Server实例后,它只具有表jobs的所有权限。
--*/USE pubs--创建角色 r_test
EXEC sp_addrole 'r_test'--授予 r_test 对 jobs 表的所有权限
GRANT ALL ON jobs TO r_test
--授予角色 r_test 对 titles 表的 SELECT 权限
GRANT SELECT ON titles TO r_test--添加登录 l_test,设置密码为pwd,默认数据库为pubs
EXEC sp_addlogin 'l_test','pwd','pubs'--为登录 l_test 在数据库 pubs 中添加安全账户 u_test
EXEC sp_grantdbaccess 'l_test','u_test'--添加 u_test 为角色 r_test 的成员
EXEC sp_addrolemember 'r_test','u_test'--拒绝安全账户 u_test 对 titles 表的 SELECT 权限
DENY SELECT ON titles TO u_test/*--完成上述步骤后,用 l_test 登录,可以对jobs表进行所有操作,但无法对titles表查询,虽然角色 r_test 有titles表的select权限,但已经在安全账户中明确拒绝了对titles的select权限,所以l_test无titles表的select权限--*/--从数据库 pubs 中删除安全账户
EXEC sp_revokedbaccess 'u_test'--删除登录 l_test
EXEC sp_droplogin 'l_test'--删除角色 r_test
EXEC sp_droprole 'r_test'
企业管理器->安全性->登录,右键‘新建登录’->设置你想登录时的用户名称>选择‘sql身份验证’->在‘数据库访问’处选择你想用此用户和密码登录的数据库->然后确定就可以了。