1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| 要成功访问数据库数据,需要两个方面的权限, (1)连接数据库服务器的权限 (2)需要获得访问某个特定的数据库数据的权限
create login u001 with password='u001',default_database=filmDB exec sp_addlogin 'u002','u002'
use filmDB go CREATE USER u001 for login u001 with default_schema=dbo go EXEC sp_grantdbaccess 'u001','u001' EXEC sp_addrolemember 'db_datareader','u001'
GRANT SELECT,INSERT,UPDATE ON filmInfo to u001
alter login u001 disable
alter login u001 enable
alter login u001 with password=''
drop user u001
drop login u001
|
参考: 建立数据库登录账户
- 首先在 SQL Server 服务器级 bai 别,创建登 du 陆帐户(create login)
1
| create login dba with password='sqlstudy', default_database=mydb
|
登陆帐户名为:zhi“dba”,登陆密码:“sqlstudy”,默认连接到的数据库 dao:“mydb”。这时候,dba 帐户就可以连接到 SQL Server 服务器上了。但是此时还不能访问数据库中的对象(严格的说,此时 dba 帐户默认是 guest 数据库用户身份,可以访问 guest 能够访问的数据库对象)。
要使 dba 帐户能够在 mydb 数据库中访问自己需要的对象,需要在数据库 mydb 中建立一个“数据库用户”,赋予这个“数据库用户” 某些访问权限,并且把登陆帐户“dba” 和这个“数据库用户” 映射起来。习惯上,“数据库用户” 的名字和 “登陆帐户”的名字相同,即:“dba”。创建“数据库用户”和建立映射关系只需要一步即可完成:
- 创建数据库用户(create user):
1
| create user dba for login dba with default_schema=dbo
|
并指定数据库用户“dba” 的默认 schema 是“dbo”。这意味着用户“dba” 在执行“select _ from t”,实际上执行的是 “select _ from dbo.t”。
- 通过加入数据库角色,赋予数据库用户“dba”权限:
1
| exec sp_addrolemember 'db_owner', 'dba'
|
此时,dba 就可以全权管理数据库 mydb 中的对象了。
如果想让 SQL Server 登陆帐户“dba”访问多个数据库,比如 mydb2。可以让 sa 执行下面的语句:
1 2 3 4 5 6
| use mydb2 go create user dba for login dba with default_schema=dbo go exec sp_addrolemember 'db_owner', 'dba' go此时,dba 就可以有两个数据库 mydb, mydb2 的管理权限了!
|
- 禁用、启用登陆帐户:
1 2
| alter login dba disable alter login dba enable
|
- 登陆帐户改名:
1
| alter login dba with name=dba_tom
|
提示:在 SQL Server 2005 中也可以给 sa 改名。 《SQL Server 2005 安全性增强:给超级用户 sa 改名》
- 登陆帐户改密码:
1
| alter login dba with password='sqlstudy.com'
|
- 数据库用户改名:
1
| alter user dba with name=dba_tom
|
- 更改数据库用户 defult_schema:
1
| alter user dba with default_schema=sales
|
- 删除数据库用户:
- 删除 SQL Server 登陆帐户: