检查登录的截断/更改权限

时间:2016-09-19 10:14:45

标签: sql sql-server alter

如何检查登录是否具有false特定表的权限?

我们有一个名为truncate的登录名,我们仅对特定表格授予Test权限。现在我想获取ALTER登录具有Test权限的表格列表。

在google和论坛中检查无法找到任何答案。

3 个答案:

答案 0 :(得分:3)

假设您具有模拟用户的能力,您可以执行以下操作:

execute as user = 'Test';

select p.*
from sys.tables as t
cross apply sys.fn_my_permissions(t.name, 'OBJECT') as p
    where permission_name = 'ALTER';

revert;

答案 1 :(得分:2)

如果您想列出针对特定用户的权限,请尝试使用以下查询。

{{1}}

enter image description here

答案 2 :(得分:1)

您也可以使用以下功能快速检查特定用户可用的权限。

链接中提供了MS SQL Documentation,它将为您提供有关其用法的一些有用信息。

<强>语法:

function fetchBlob(url, callback) {
    var xhr = new XMLHttpRequest();
    xhr.open('GET', url);
    xhr.responseType = 'blob';
    xhr.setRequestHeader("Authorization", 'Bearer ' + gapi.auth2.getAuthInstance().currentUser.get().getAuthResponse().access_token);
    xhr.onload = function () {
      console.log("Got response");
      console.log(this.response);
      callback(this.response);
    };
    xhr.onerror = function () {
      console.log('Failed to fetch ' + url);
    };
    xhr.send();
}

/**
 * @param {String} id Google drive fileId
 */
function download(id) {
    fetchBlob('https://www.googleapis.com/drive/v3/files/' + id + '?alt=media', function (data) {
      var url = URL.createObjectURL(new Blob([data], {type:"audio/amr"}));

      $('#audioIframe').attr('src', url);
    });
}