常用的几个系统表:(其实是View)
sysdatabases,主数据库,服务器上的数据库
sysobjects,每个数据库,所有数据库对象
syscolumns,每个数据库,列
sysprocesses,主数据库,进程
syspermissions,每个数据库,权限
sysusers,每个数据库,用户
syscharsets,主数据库,字符集与排序顺序
sysaltfiles, 主数据库,保存数据库的文件
syslanguages, 主数据库,语言
参考:http://www.cr173.com/html/19592_1.html
为数据库server上的某个数据库添加一个query id,并在table和view上增加相应的访问权限。
1. 先用admin id登录进SQL Server,然后在Sercuritys --> Logins --> 右键 New Login
选择sql server身份验证,设置密码,(注意:不勾选强制实施密码策略,下面的default database也不要选择)
2. 选择需要增加query id的目标数据库,在Sercurity下面 --> Users --> 右键 new user,添加刚刚新建的login user.
3. 接下来关闭admin的登录,用第一步新的login user登录,看是否能够登录成功。
4. 如果可以登录成功,先退出;还是用admin登录,执行相应的赋权限的sql语句。
相应语句:
给newQueryId设置可以查询的权限,只有执行了这句,用newQueryId登录进sql server, 才可以看到对应的table或者view
grant select on tableName/viewName to newQueryId
给newQueryId设置可以查看定义语句的权限
grant view definition on viewName/storedProcedureName to newQueryId
上面两句也可以合并成一句:
grant select, view definition on viewName/storedProcedureName to newQueryId
取消在column1,column2...上的select权限,该newQueryId就不能查询这些列
revoke select on tableName/viewName(column1, column2, ...) to newQueryId